需求 :
举例 : 当前员工表有入职和离职日期,离职后更新当前时间,再入职时更新入职时间并清空离职日期
解决方法 :
方法一 : 修改配置文件
MyBatis-Plus对字段的验证策略默认是1
field-strategy字段更新插入策略属性说明:
IGNORED(0): "忽略判断", 所有字段都更新和插入
NOT_NULL(1): "非 NULL 判断", 只更新和插入非NULL值
NOT_EMPTY(2): "非空判断", 只更新和插入非NULL值且非空字符串
DEFAULT:默认NOT_NULL
修改field-strategy字段验证的值为0
mybatis-plus:
global-config:
#字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断"
field-strategy: 0
方法二 : 对需要的字段的验证策略进行修改
@ApiModelProperty(value = "入职时间")
@TableField(value = "hire_date",strategy = FieldStrategy.IGNORED)
private java.util.Date hireDate;
方法三 : 使用update方法
@Override
public void updateMain(BEmEmployee bEmEmployee) {
LambdaUpdateWrapper<BEmEmployee> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
if (bEmEmployee.getLeaveDate()==null){
lambdaUpdateWrapper.set(BEmEmployee::getLeaveDate,null);
}
// where条件
lambdaUpdateWrapper.eq(BEmEmployee::getId,bEmEmployee.getId());
bEmEmployeeViewMapper.update(bEmEmployee,lambdaUpdateWrapper);
}