首頁 > Java > java教程 > 主體

如何在 JPA 中實現版本化資料條目的複合主鍵?

Susan Sarandon
發布: 2024-10-29 07:36:02
原創
479 人瀏覽過

How to Implement Composite Primary Keys for Versioned Data Entries in JPA?

在JPA 中建立和處理複合主鍵

場景:

考慮需要儲存多個版本的場景相同資料條目的數據,由id 和Version 列表示。目標是建立一個可以複製具有不同版本的條目的實體。

實體定義:

要定義具有複合主鍵的實體,您可以使用以下方法:

  1. 嵌入類別: 建立一個包含關鍵欄位的嵌入類別。該類別將用作實體中的 EmbeddedId。
<code class="java">@Embeddable
public class MyKey implements Serializable {

    @Column(name = "Id", nullable = false)
    private int id;

    @Column(name = "Version", nullable = false)
    private int version;

    // Getters and setters
}</code>
登入後複製
  1. 實體類別: 實體類別將引用嵌入類別作為其主要類別
<code class="java">@Entity
public class YourEntity {

    @EmbeddedId
    private MyKey myKey;

    @Column(name = "ColumnA")
    private String columnA;

    // Getters and setters
}</code>
登入後複製

。一種方法:

或者,@IdClass 註解可用於定義複合主鍵。這種方法允許您直接在關鍵字段上使用 @Id 註釋。

<code class="java">@Entity
@IdClass(MyKey.class)
public class YourEntity {

    @Id
    private int id;

    @Id
    private int version;

    // Getters and setters
}</code>
登入後複製
<code class="java">public class MyKey implements Serializable {

    private int id;
    private int version;

    // Getters and setters
}</code>
登入後複製

複製實體:

用不同的值複製實體version,建立一個具有相同 id 但版本值不同的新實例。這將在資料庫中建立一個代表新版本的單獨條目。

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板