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

15 篇文章 0 订阅
本文介绍了如何在MyBatis-Plus中处理员工表的入职和离职日期更新问题。提供了三种解决方案:修改全局配置文件将字段策略设为忽略判断,对特定字段设置更新策略,以及使用LambdaUpdateWrapper进行条件更新。详细解析了MyBatis-Plus的字段更新插入策略,并给出了实际操作示例。
摘要由CSDN通过智能技术生成

需求 :

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

解决方法 : 

方法一 : 修改配置文件

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值