欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Mybatis?saveAndUpdate空值不更新問題及解決

 更新時(shí)間:2023年02月08日 09:13:19   作者:專注,簡單  
這篇文章主要介紹了Mybatis?saveAndUpdate空值不更新問題及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Mybatis saveAndUpdate空值不更新

@TableField注解有三種更新策略

public enum FieldStrategy {
? ? IGNORED,//參數(shù)為空也更新到數(shù)據(jù)庫
? ? NOT_NULL,//參數(shù)不能為null
? ? NOT_EMPTY;//參數(shù)不能為空

? ? private FieldStrategy() {
? ? }
}

如下,如果想要name字段為空或者null時(shí)也更新數(shù)據(jù)庫數(shù)據(jù),注解上加 strategy = FieldStrategy.IGNORED

@TableField(strategy = FieldStrategy.IGNORED,value="name")
? ? private String name;

Mybatis使用update更新值為null時(shí)不生效

純屬記錄使用過程中遇到的問題更新null值沒有生效的問題解決辦法,內(nèi)容較為簡單。

出現(xiàn)的問題

前端修改數(shù)據(jù)時(shí)把屬性內(nèi)容刪除然后進(jìn)行保存,默認(rèn)傳的null,后端更新時(shí)屬性值為null,然后調(diào)用updateById進(jìn)行更新時(shí)發(fā)現(xiàn)該屬性還是原來的值:

name:"tt";
 
//前端頁面把該屬性內(nèi)容進(jìn)行刪除傳給我后端
{
name: null
}
 
//后端接收到的
name: null
 
//使用該方法進(jìn)行更新
updateById();
 
//結(jié)果name還是等于更新前的值
name: "tt";

后面百度發(fā)現(xiàn)該update方法不會對屬性null的進(jìn)行更新

原因

mybatis-plus FieldStrategy 有三種策略:

  • IGNORED:忽略
  • NOT_NULL:非 NULL,默認(rèn)策略
  • NOT_EMPTY:非空

默認(rèn)非空,所有更新時(shí)不生效的問題

解決方法

設(shè)置全局的field-strategy 

這樣全局配置會把所有的屬性都忽略,對于一些不需要改的屬性可能會影響業(yè)務(wù)的準(zhǔn)確性。

②給單獨(dú)的屬性設(shè)置field-strategy

根據(jù)實(shí)際應(yīng)用情況對某些屬性增加該注解來忽略策略

@TableField(strategy=FieldStrategy.IGNORED)

這樣增加該注解的屬性就可以使用updateById()方法進(jìn)行更新null值。

------當(dāng)然還有其他的好的方法也可以去參考

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java基于swing實(shí)現(xiàn)的彈球游戲代碼

    Java基于swing實(shí)現(xiàn)的彈球游戲代碼

    這篇文章主要介紹了Java基于swing實(shí)現(xiàn)的彈球游戲代碼,包含了窗體界面設(shè)計(jì)與游戲的邏輯功能處理,具有不錯(cuò)的參考借鑒價(jià)值,需要的朋友可以參考下
    2014-11-11
  • application.yml文件中如何開啟mybatis自動駝峰映射

    application.yml文件中如何開啟mybatis自動駝峰映射

    這篇文章主要介紹了application.yml文件中開啟mybatis自動駝峰映射的方法,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-08-08
  • 為什么wait和notify必須放在synchronized中使用

    為什么wait和notify必須放在synchronized中使用

    這篇文章主要介紹了為什么wait和notify必須放在synchronized中使用,文章圍繞主題的相關(guān)問題展開詳細(xì)介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考以參考一下
    2022-05-05
  • 利用微信小程序+JAVA實(shí)現(xiàn)微信支付的全過程

    利用微信小程序+JAVA實(shí)現(xiàn)微信支付的全過程

    微信支付是一種在線支付解決方案,允許用戶通過微信內(nèi)的支付功能進(jìn)行付款,下面這篇文章主要給大家介紹了關(guān)于利用微信小程序+JAVA實(shí)現(xiàn)微信支付的相關(guān)資料,需要的朋友可以參考下
    2024-08-08
  • 基于java TCP網(wǎng)絡(luò)通信的實(shí)例詳解

    基于java TCP網(wǎng)絡(luò)通信的實(shí)例詳解

    本篇文章是對java中TCP網(wǎng)絡(luò)通信的實(shí)例進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • MyBatis深入解讀懶加載的實(shí)現(xiàn)

    MyBatis深入解讀懶加載的實(shí)現(xiàn)

    顧名思義,懶加載就是因?yàn)橥祽辛?,懶得加載了,只有使用的時(shí)候才進(jìn)行加載。其實(shí),懶加載也加延遲加載,主要以應(yīng)用與Mybatis的關(guān)聯(lián)查詢,按照設(shè)置的延遲規(guī)則,推遲對延遲對關(guān)聯(lián)對象的select查詢
    2022-04-04
  • IDEA?一直scanning?files?to?index的四種完美解決方法(VIP典藏版)

    IDEA?一直scanning?files?to?index的四種完美解決方法(VIP典藏版)

    這篇文章主要介紹了IDEA?一直scanning?files?to?index的四種完美解決方法(VIP典藏版),推薦第四種方法,第四種方法摸索研究后得出,親測好用,需要的朋友參考下吧
    2023-10-10
  • Mybatis的SqlRunner執(zhí)行流程實(shí)現(xiàn)

    Mybatis的SqlRunner執(zhí)行流程實(shí)現(xiàn)

    MyBatis提供了一個(gè)用于操作數(shù)據(jù)庫的SqlRunner工具類,對JDBC做了很好的封裝,本文主要介紹了Mybatis的SqlRunner執(zhí)行流程實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-10-10
  • 從java源碼分析線程池(池化技術(shù))的實(shí)現(xiàn)原理

    從java源碼分析線程池(池化技術(shù))的實(shí)現(xiàn)原理

    這篇文章主要介紹了從java源碼分析線程池(池化技術(shù))的實(shí)現(xiàn)原理,池化技術(shù)是一種編程技巧,當(dāng)程序出現(xiàn)高并發(fā)時(shí),能夠明顯的優(yōu)化程序,降低系統(tǒng)頻繁創(chuàng)建銷毀連接等額外開銷,下文更多的相關(guān)介紹需要的小伙伴可以參考一下
    2022-04-04
  • 一篇文章帶你了解Java Spring基礎(chǔ)與IOC

    一篇文章帶你了解Java Spring基礎(chǔ)與IOC

    這篇文章主要介紹了Java Spring基礎(chǔ)與IOC,文中講解的相關(guān)內(nèi)容非常詳細(xì),也運(yùn)用了大量的代碼進(jìn)行講解,感興趣的小伙伴可以參考一下
    2021-08-08

最新評論