日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

mybatisPlus中的field-strategy(字段更新插入策略):null值插入和更新问题

發布時間:2025/3/11 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mybatisPlus中的field-strategy(字段更新插入策略):null值插入和更新问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

    • mybatisPlus中null值插入和更新問題
      • 實際項目解決方法示例一
      • 實際項目解決方法示例二
    • field-strategy字段更新插入策略介紹
      • 枚舉類FieldStrategy源碼
      • 枚舉類字段簡介

mybatisPlus中null值插入和更新問題

配置mybatisPlus的項目中,默認進行了不是全量更新的策略:NOT_NULL。
即在利用updateWrapper更新時,會做null判斷,如果傳參數為null,就不會更新。
在實際項目需求中可能配置全局更新策略為:NOT_NULL,但是某些場景更新時需要插入這個null值進行更新。如何解決這個問題呢?

實際項目解決方法示例一

實際項目中,配置文件中配置全局字段策略為NOT_NULL。

需求:實際項目中,apply_teacher字段當它為null時需要把null值更新進去。
困難:因為全局字段策略為NOT_NULL,所以默認不會更新null值進去。
解決方法:
利用條件構造器當值為null時set為null。
代碼:

Wrapper<StuApplyInfoEntity> updateWrapper = new UpdateWrapper<>(); ((UpdateWrapper) updateWrapper).set(saveApply.getApplyTeacher() == null, "apply_teacher", null);

實際項目解決方法示例二

需求:state字段所有值都更新和插入。
困難:因為全局字段策略為NOT_NULL,所以默認不會更新null值進去。
解決方法:
在entity中設置state設置注解@TableField(),配置FieldStrategy為IGNORED。意思是"忽略判斷",所有值都更新和插入。
代碼:

@TableField(strategy = FieldStrategy.IGNORED, el = "state, jdbcType=VARCHAR") private String state;

field-strategy字段更新插入策略介紹

枚舉類FieldStrategy源碼

public enum FieldStrategy {/*** 忽略判斷*/IGNORED,/*** 非NULL判斷*/NOT_NULL,/*** 非空判斷*/NOT_EMPTY,/*** 默認的,一般只用于注解里* <p>1. 在全局里代表 NOT_NULL</p>* <p>2. 在注解里代表 跟隨全局</p>*/DEFAULT }

枚舉類字段簡介

IGNORED:“忽略判斷”,所有字段都更新和插入。
NOT_NULL:“非 NULL 判斷”,只更新和插入非NULL值。
NOT_EMPTY:“非空判斷”, 只更新和插入非NULL值且非空字符串。
DEFAULT: 默認的,一般只用于注解里。

總結

以上是生活随笔為你收集整理的mybatisPlus中的field-strategy(字段更新插入策略):null值插入和更新问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。