Mybatis plus 3.x更新null值全局设定

2022-07-23 12:45:17

 问题:

在用mybatis-plus封装的updateById方法来更新数据时,想把一个字段设置为null值,但是发现更新后数据没有为null还是原来的值,这是因为mybatis-plus在更新的时候做了null判断,默认不更新为null的传参。

官网解决方案:

地址:https://mp.baomidou.com/guide/faq.html#%E6%8F%92%E5%85%A5%E6%88%96%E6%9B%B4%E6%96%B0%E7%9A%84%E5%AD%97%E6%AE%B5%E6%9C%89-%E7%A9%BA%E5%AD%97%E7%AC%A6%E4%B8%B2-%E6%88%96%E8%80%85-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的字段,我就想说了,我一个一个字段去指定更加麻烦,所以我选择了设定全局。

  • 作者:atgeretg
  • 原文链接:https://blog.csdn.net/atgeretg/article/details/114310326
    更新时间:2022-07-23 12:45:17