首頁  >  文章  >  Java  >  如何在JPA中使用複合主鍵實現資料版本控制?

如何在JPA中使用複合主鍵實現資料版本控制?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-27 11:01:01585瀏覽

How to Implement Data Versioning with Composite Primary Keys in JPA?

使用JPA 進行複合主鍵處理

資料版本控制需要能夠複製具有不同版本的實體,因此建立組合至關重要實體的主鍵。

使用複合主鍵的實體定義

在 JPA 中,可以使用 @EmbeddedId 或 @IdClass 註解來定義複合主鍵。

使用@EmbeddedId

為key單獨定義一個類別(@Embeddable註解),然後在實體中用@EmbeddedId註解:

<code class="java">@Entity
public class YourEntity {
    @EmbeddedId
    private MyKey myKey;

    private String columnA;
    // getters and setters
}

@Embeddable
public class MyKey implements Serializable {

    private int id;
    private int version;
    // getters and setters
}</code>

使用@IdClass

或者,使用@IdClass註解類,並在類別中將ID屬性定義為@Id:
<code class="java">@Entity
@IdClass(MyKey.class)
public class YourEntity {

    @Id
    private int id;

    @Id
    private int version;

}

public class MyKey implements Serializable {
   private int id;
   private int version;
}</code>

複製具有版本的實體

定義實體後,可以使用新版本複製它。例如,要建立 id=1 的第一個實體的新版本:
<code class="java">YourEntity newVersion = new YourEntity();
newVersion.setMyKey(new MyKey(1, 1)); // new version
newVersion.setColumnA("Some Other Data");
entityManager.persist(newVersion);</code>

以上是如何在JPA中使用複合主鍵實現資料版本控制?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn