Mybatis使用update更新值為null時不生效問題解決
該文章純屬記錄使用過程中遇到的問題更新null值沒有生效的問題解決辦法,內(nèi)容較為簡單。
1.出現(xiàn)的問題
前端修改數(shù)據(jù)時把屬性內(nèi)容刪除然后進行保存,默認傳的null,后端更新時屬性值為null,然后調(diào)用updateById進行更新時發(fā)現(xiàn)該屬性還是原來的值:
name:"tt"; //前端頁面把該屬性內(nèi)容進行刪除傳給我后端 { name: null } //后端接收到的 name: null //使用該方法進行更新 updateById(); //結(jié)果name還是等于更新前的值 name: "tt";
后面百度發(fā)現(xiàn)該update方法不會對屬性null的進行更新
2.原因
mybatis-plus FieldStrategy 有三種策略:
- IGNORED:忽略
- NOT_NULL:非 NULL,默認策略
- NOT_EMPTY:非空
默認非空,所有更新時不生效的問題
3.解決方法
①設(shè)置全局的field-strategy
這樣全局配置會把所有的屬性都忽略,對于一些不需要改的屬性可能會影響業(yè)務(wù)的準確性。
②給單獨的屬性設(shè)置field-strategy
根據(jù)實際應(yīng)用情況對某些屬性增加該注解來忽略策略
@TableField(strategy=FieldStrategy.IGNORED)
這樣增加該注解的屬性就可以使用updateById()方法進行更新null值。
------當(dāng)然還有其他的好的方法也可以去參考
到此這篇關(guān)于Mybatis使用update更新值為null時不生效的文章就介紹到這了,更多相關(guān)Mybatis使用update更新值為null內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Netty分布式ByteBuf使用SocketChannel讀取數(shù)據(jù)過程剖析
這篇文章主要為大家介紹了Netty源碼分析ByteBuf使用SocketChannel讀取數(shù)據(jù)過程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-03-03mybatis?對于生成的sql語句?自動加上單引號的情況詳解
這篇文章主要介紹了mybatis?對于生成的sql語句?自動加上單引號的情況詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01Java while(scanner.hasNext())無法跳出的解決方案
這篇文章主要介紹了Java while(scanner.hasNext())無法跳出的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-10-10Java的Hibernate框架中的組合映射學(xué)習(xí)教程
組合映射即是指主對象和子對象關(guān)聯(lián)且擁有相同的生命周期的映射關(guān)系,這里我們將舉一些數(shù)據(jù)操作的實例,來講解Java的Hibernate框架中的組合映射學(xué)習(xí)教程2016-07-07JavaWeb搭建網(wǎng)上圖書商城畢業(yè)設(shè)計
這篇文章主要介紹了JavaWeb搭建網(wǎng)上圖書商城框架,特別適合正在為網(wǎng)上商城畢業(yè)設(shè)計煩惱的同學(xué),需要的朋友可以參考下2015-11-11SkyWalking?自定義插件(Spring?RabbitMQ)具體分析過程
這篇文章主要介紹了SkyWalking?自定義插件(Spring?RabbitMQ)具體分析過程,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-02-02