MyBatis-Plus updateById方法无法更新字段为空字符串或null

需求 :

举例 : 当前员工表有入职和离职日期,离职后更新当前时间,再入职时更新入职时间并清空离职日期

MyBatis-Plus updateById方法无法更新字段为空字符串或null

解决方法 : 

方法一 : 修改配置文件

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);	
	}

上一篇:Smart Tomcat插件的使用详解


下一篇:vue3 element-plus table 数据显示不出来现象