Mybatis-plus使用update()/updateById()将字段更新为null或者空值时候不起作用。
**原因:**mybatis-plus FieldStrategy 有三种策略:
IGNORED:0 忽略
NOT_NULL:1 非 NULL,默认策略
NOT_EMPTY:2 非空
而默认更新策略是 NOT_NULL:非 NULL; 即通过接口更新数据时数据为NULL值时将不更新进数据库。
解决方法(3种):
1、在配置文件中,设置全局的field-strategy,如下
#properties文件格式:
mybatis-plus.global-config.db-config.field-strategy=ignored
#yml文件格式:
mybatis-plus:
global-config:
#字段策略 0:"忽略判断",1:"非 NULL 判断",2:"非空判断"
field-strategy: 0
2、对字段进行单独设置
@TableField(updateStrategy= FieldStrategy.IGNORED)
3、使用updateWrapper
LambdaUpdateWrapper<xxx> updateWrapper = new LambdaUpdateWrapper<>();
wrapper.eq(xxx::getId, xxx.getId());
wrapper.set(xxx::getOrgUri, xxx.getOrgUri());
wrapper.set(xxx::getBeginTime, null);
xxxMapper.update(xxx, updateWrapper);
版权声明:程序员胖胖胖虎阿 发表于 2022年11月4日 上午5:32。
转载请注明:Mybatis-plus使用update()/updateById()将字段更新为null或者空值时候不起作用 | 胖虎的工具箱-编程导航
转载请注明:Mybatis-plus使用update()/updateById()将字段更新为null或者空值时候不起作用 | 胖虎的工具箱-编程导航
相关文章
暂无评论...