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

 问题:

在用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的字段,我就想说了,我一个一个字段去指定更加麻烦,所以我选择了设定全局。

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值