添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
刀枪不入的核桃  ·  Event update (i.e. ...·  1 月前    · 
怕老婆的海豚  ·  Unable to ...·  3 周前    · 
销魂的大白菜  ·  Google play system ...·  3 周前    · 
乐观的甘蔗  ·  Alpine Docker ...·  2 周前    · 
狂野的伏特加  ·  Python ...·  6 月前    · 

问题

mybatis-plus(简称:mp)执行更新操作,将某些字段值置为 空 或者 null,持久层执行后,需要更新为空值的字段仍然保持原本的值。
显然和我们预期的结果不一致。

我们可以参照以下三种方案处理 mp 执行更新操作空值的情况。

方案一:注解方式

针对实体类中字段的注解,在 mybatis-plus 的 @TableField
有 FieldStrategy-字段验证策略 和 FieldFill-自动填充 两种方式:

FieldStrategy 字段策略的3个使用场景:

  • insertStrategy insert操作时的字段策略,是否进行空值判断,插入空值
  • updateStrategy update操作时的字段策略,是否进行空值判断,插入空值
  • whereStrategy where条件组装时的字段策略,是否进行控制判断,将空值作为查询条件
  • 这里我们主要说 mp 执行更新操作,某一字段值为空未被更新的情况:
    就是注解中的: updateStrategy fill 两个属性。

    1、updateStrategy(字段验证策略之 update)

    1.1 当执行更新操作时,该字段拼接set语句时的策略: