背景:

最近将框架的mybits换为mybits-plus,然后在调用updateById时候,想让某个字段修改null,一直失败

问题:

mybits-plus调用updateById时候,想让某个字段修改null,一直失败

问题原因:

mybatis-plus会将所有为空的字段在修改时进行过滤,不进行为空的修改操作

修改方案:

方案1:

修改MyBatis-Plus 全局默认策略

mybatis-plus:
  global-config:
      #字段策略 0:"忽略判断",1:"非 NULL 判断",2:"非空判断"
    field-strategy: 0

缺点:

这样做会对所有的字段都忽略判断,如果一些字段不想要修改,但是传值的时候没有传递过来,就会被更新为null

方案2:

修改实体类注解,改变字段的忽略判断

@TableField( updateStrategy = FieldStrategy.IGNORED)
    private Date useTime;

缺点:

需要注意数据库字段是否设置为 非null ,如果为非null 也更新不成功

备注:

官网截图如下:

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐