修补别人bug记录--mybatis-plus出现字段不能重新更新为null

背景:

最近在修改前人留下的坑,顺便记录一下。情况是这样,测试在进行填写一个字段的值保存之后,然后进行修改时,直接把原来的值去掉,不填任何值,出现了值根本没有变化。

过程:

经过各种排查之后,确定在这位同事直接用maybatis-plus自带的service的方式,使用了更新操作的方法,这里出现了问题。经过进一步跟踪之后,发现在字段上面没有设置关于字段属性为‘ null ’ 或者 为 “”时的相关策略,而mybatis-plus采用默认策略,忽略对null的校验,即""会更新,null不会更新,导致无法更新null, 即如果传过来的是“”就可以保存下,如果传过来的是null, 就会字段忽略掉不会进行更新。

解决方法:

在需要字段上加上@TableField(strategy = FieldStrategy.IGNORED)注解,就会忽略为空的判断,将该字段设置为null也会更新表中的数据。

PS: 

mybatis-plus提供了四种策略:

IGNORED,忽忽略非空判断,null和""都不过滤

DEFAULT, 默认

NOT_EMPTY, 非空判断,为null,为空串的忽略,就是如果设置值为null,"",不会更新数据库

NOT_NULL, 非NULL判断,忽略null的字段,不忽略""

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值