您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“使用mybatisplus修改某字段為null怎么解決”,內容詳細,步驟清晰,細節處理妥當,希望這篇“使用mybatisplus修改某字段為null怎么解決”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
使用mybatis + mybatisPlus進行修改某字段,想要將其設為null, 但執行時沒有成功。
mybatis-plus會將所有為空的字段在修改時進行過濾,不進行設為空的修改操作。
在相關字段上加上注解
@TableField(strategy = FieldStrategy.IGNORED)
例:
@TableField(strategy = FieldStrategy.IGNORED) private Long classId;
mapper.updateById()時,set為null未生效,其他字段更新
periodRecordOriginal.setSettleTime(null); periodRecordOriginal.setActualSettleTime(null); periodRecordOriginal.setSettleStatus(0); int i = periodRecordMapper.updateById(periodRecordOriginal);
MyBatis-Plus對字段的驗證策略導致的,MyBatis-Plus默認進?了不是全量更新的策略,默認忽略為null 的字段的
1)修改MyBatis-Plus 全局默認策略
缺點:這樣做會對所有的字段都忽略判斷,如果一些字段不想要修改,但是傳值的時候沒有傳遞過來,就會被更新為null
mybatis-plus: global-config: #字段策略 0:"忽略判斷",1:"非 NULL 判斷",2:"非空判斷" field-strategy: 0
2)修改實體類注解,改變字段的忽略判斷
缺點:需要注意數據庫字段是否設置為 非null ,如果為非null 也更新不成功
@TableField( updateStrategy = FieldStrategy.IGNORED) private Date settleTime;
讀到這里,這篇“使用mybatisplus修改某字段為null怎么解決”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。