问题:
在用mybatis-plus封装的updateById方法来更新数据时,想把一个字段设置为null值,但是发现更新后数据没有为null还是原来的值,这是因为mybatis-plus在更新的时候做了null判断,默认不更新为null的传参。
官网解决方案:
但是,官方没有说清楚方式一怎么设定
我用的是“全局的验证策略”
上代码吧,我用的mybatisplus版本为3.4.1
################### mybatis-plus配置 ###################
mybatis-plus:
#实体扫描,多个package用逗号或者分号分隔
global-config:
db-config:
#字段策略
select-strategy: DEFAULT
insert-strategy: DEFAULT
update-strategy: IGNORED
来看看字段的意思吧,配置的其实是枚举,源码如下图
有些博客说设置:field-strategy,这些根本没用
我试过的(别试了,没用):
一开始我以为是位置不对
然后就这样(还是没有用):
结语:很多人说全局设定不好,有风险,会不小心更新到其它为null的字段,我就想说了,我一个一个字段去指定更加麻烦,所以我选择了设定全局。