mybatisplus 更新字段为null
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatisplus 更新字段为null相关的知识,希望对你有一定的参考价值。
参考技术A 第一种写法:UpdateWrapper updateWrapper = new UpdateWrapper();
updateWrapper.set("mer_name", null); //把字段改为null
updateWrapper.eq("mer_id", "111");
merInfoService.update(updateWrapper);
第二种写法(lambda):
merInfoService.lambdaUpdate()
.set(MerInfo::getMerName, null) //把字段改为null
.eq(MerInfo::getMerId, "111")
.update();
MyBatisPlus使用updateBatchById()方法无法更新字段,仍返回true
一、问题
今天在用MybatisPlus提供的批量更新功能的时候,发现数据并没有更新,然后还返回true。
二、原因分析
打端点走之后,发现实体中的很多值都是Null,而数据库查询的时候带上is_delete=0 了,所以这才是最终导致了虽然没有更新成功,它也返回false了。
问题解决
实体中的isDeleted中的注解@TableLogic 删掉,然后将yml文件中的
logic-delete-field: flag # 全局逻辑删除的实体字段名(since 3.3.0,配置后可以忽略不配置步骤2)
logic-delete-value: 1 # 逻辑已删除值(默认为 1)
logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)
这个也去掉
以上是关于mybatisplus 更新字段为null的主要内容,如果未能解决你的问题,请参考以下文章
springboot调整MybatisPlus全局的验证策略
MybatisPlus 统一管理创建人更新人创建时间更新时间等公共字段