解決mybatisPlus null 值更新的問題

發現mybatisPlus會更新對象屬性為null的值,

與field-strategy配置有關

mybatis-plus:
 global-config:
  db-config:
   field-strategy: not_null

在3.1.0版本中,其選擇的值有

public enum FieldStrategy {
  IGNORED,
  NOT_NULL,
  NOT_EMPTY,
  DEFAULT; 
  private FieldStrategy() {
  }
}

我剛開始選擇的是ignored,所以null值會更新,像這樣:

改成not_null,就是這樣瞭

官網解釋:

該策略約定瞭如何產出註入的sql,涉及insert,update以及wrapper內部的entity屬性生成的 where 條件

官方鏈接: https://mp.baomidou.com/config/#fieldstrategy

補充:mybatis-plus更新的時候忽略null值判斷

一般會更新操作都會判斷null值,為null就不更新對應的字段。

但是有時候需要把特定的字段更新為null,使用mybatis-plus時可以在實體類特定屬性上面加註解@TableField(strategy=FieldStrategy.IGNORED),就會忽略null值判斷,將null更新進數據庫。

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。

推薦閱讀: