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

SpringBoot中JPA更新時部分字段無效

 更新時間:2023年04月12日 09:34:35   作者:此間碼農  
本文主要介紹了SpringBoot中JPA更新時部分字段無效,在通過注解自動更新時,部分字段在調試時可以找到,卻沒有被自動更新到數(shù)據庫中,下面就介紹一下解決方法

最近用JPA寫業(yè)務代碼,發(fā)現(xiàn)了一個奇怪的bug,在通過注解自動更新時,部分字段在調試時可以找到,卻沒有被自動更新到數(shù)據庫中。

相關源碼

實體類定義

@Table(name = "t_workspace")
@Entity
@DynamicInsert
@DynamicUpdate
@org.hibernate.annotations.Table(appliesTo = "t_workspace", comment = "工作空間表")
public class WorkSpaceEntity extends BaseEntity {


    @Column(columnDefinition = "TEXT COMMENT '模型圖結構' ")
    private String mxGraphModel;

    @Convert(converter = ModelDataConver.class)
    @Column(columnDefinition = "mediumtext comment '存儲模型數(shù)據集'")
    private ModelData modelData;
}

相關業(yè)務語句如下,用于更新mxGraphModelmodelData

workSpace.setMxGraphModel(newEntity.getMxGraphModel());
workSpace.setModelData(newEntity.getModelData());

但實際執(zhí)行的SQL語句如下

Hibernate: update t_workspace set wupdated_at=?, wmx_graph_model=? where wid=?

@DynamicUpdate適用屬性

如上所示,使用注解@DynamicUpdate自動更新,但是該注解只能自動更新實體屬性。而實體屬性是指JPA認定的基本數(shù)據類型以及關聯(lián)類型屬性。另外,如果實體類中存在一些計算屬性或者需要在插入或更新時設置默認值的屬性,那么這些屬性可能會被忽略,導致出現(xiàn)數(shù)據不一致的情況。

計算屬性

實體類中的計算屬性指的是,這些屬性的值是根據其他屬性計算得出的,而不是從數(shù)據庫中直接獲取的。例如,訂單實體類中的總金額屬性,可能是根據訂單項的數(shù)量和單價計算得出的,而不是從數(shù)據庫中直接獲取的。

插入或更新時設置默認值

需要在插入或更新時設置默認值的屬性,指的是這些屬性在插入或更新時需要設置默認值,例如創(chuàng)建時間、更新時間、是否刪除等屬性。

這些屬性有以下特點:

  • 與數(shù)據庫表中的字段不一一對應,可能通過計算或者默認值生成。
  • 在讀取或者寫入數(shù)據庫時,需要特殊處理,以保證其值的正確性。
  • 在使用動態(tài) SQL 語句生成注解時,需要特殊處理,以避免生成不必要的 SQL 語句。

JPA基本數(shù)據類型

基本類型指的是 Java 中的基本數(shù)據類型,包括 byte、short、int、long、float、double、char、boolean 等。在 JPA 中,除了基本數(shù)據類型之外,還包括一些 Java 類型,例如 String、java.util.Date、java.sql.Date、java.sql.Time、java.sql.Timestamp 等。

關聯(lián)類型屬性

通過@OneToOne、@OneToMany、@ManyToOne、@ManyToMany注解的屬性

綜上

ModelData屬于自定義類,作為JPA的三等公民,沒有被優(yōu)待的權利。而JPA中對象即表的概念展現(xiàn)得淋漓盡致。

到此這篇關于SpringBoot中JPA更新時部分字段無效的文章就介紹到這了,更多相關JPA更新時部分字段無效內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Java基礎概述面試題復習

    Java基礎概述面試題復習

    這篇文章主要介紹了java基礎面試題,文中的描述非常詳細,對正在學習java基礎的小伙伴們有非常好的幫助,需要的朋友可以參考下,希望能給你帶來幫助
    2021-08-08
  • springboot2中HikariCP連接池的相關配置問題

    springboot2中HikariCP連接池的相關配置問題

    這篇文章主要介紹了springboot2中HikariCP連接池的相關配置問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Spring?Gateway基礎教程

    Spring?Gateway基礎教程

    本文主要總結Spring?Gateway的基礎用法,內容包括網關、Spring?Gateway工作流程、Spring?Cloud?Gateway搭建、路由配置方式、負載均衡實現(xiàn)、斷言工廠這幾個部分,感興趣的朋友跟隨小編一起看看吧
    2023-11-11
  • 基于mybatis中test條件中單引號雙引號的問題

    基于mybatis中test條件中單引號雙引號的問題

    這篇文章主要介紹了基于mybatis中test條件中單引號雙引號的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • SpringSecurity 自定義表單登錄的實現(xiàn)

    SpringSecurity 自定義表單登錄的實現(xiàn)

    這篇文章主要介紹了SpringSecurity 自定義表單登錄的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-01-01
  • IDEA教程之Activiti插件圖文詳解

    IDEA教程之Activiti插件圖文詳解

    這篇文章主要介紹了IDEA教程之Activiti插件圖文詳解,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • Maven依賴junit?@Test報錯的解決方案

    Maven依賴junit?@Test報錯的解決方案

    這篇文章主要介紹了Maven依賴junit?@Test報錯的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Springboot詳細講解RocketMQ實現(xiàn)順序消息的發(fā)送與消費流程

    Springboot詳細講解RocketMQ實現(xiàn)順序消息的發(fā)送與消費流程

    RocketMQ作為一款純java、分布式、隊列模型的開源消息中間件,支持事務消息、順序消息、批量消息、定時消息、消息回溯等,本篇我們了解如何實現(xiàn)順序消息的發(fā)送與消費
    2022-06-06
  • Java泛型在集合使用與自定義及繼承上的體現(xiàn)和通配符的使用

    Java泛型在集合使用與自定義及繼承上的體現(xiàn)和通配符的使用

    泛型又稱參數(shù)化類型,是Jdk5.0 出現(xiàn)的新特性,解決數(shù)據類型的安全性問題,在類聲明或實例化時只要指定好需要的具體的類型即可。Java泛型可以保證如果程序在編譯時沒有發(fā)出警告,運行時就不會產生ClassCastException異常。同時,代碼更加簡潔、健壯
    2021-09-09
  • java比較兩個list是否相同equals的代碼詳解

    java比較兩個list是否相同equals的代碼詳解

    在本篇文章里小編給大家分享的是關于java比較兩個list是否相同equals的代碼詳解,有需要的朋友們可以參考學習下。
    2020-02-02

最新評論