在JPA 中建立和處理複合主鍵
要管理實體內的資料版本,建立複合主鍵允許複製基於版本號的條目。考慮以下實作:
@Entity public class YourEntity { @EmbeddedId private MyKey id; private String columnA; // Getters and setters omitted for brevity } @Embeddable public class MyKey implements Serializable { private int id; private int version; // Getters and setters omitted for brevity }
使用此方法,id 和 version 欄位都形成複合主鍵。這使得可以為每個資料記錄建立多個版本:
Entity 1: id = 1, version = 0, columnA = "Data Entry 1" Entity 2: id = 1, version = 1, columnA = "Updated Data Entry 1"
定義複合主鍵的替代方法是使用@IdClass 註解:
@Entity @IdClass(MyKey.class) public class YourEntity { @Id private int id; @Id private int version; private String columnA; // Getters and setters omitted for brevity } public class MyKey implements Serializable { private int id; private int version; // Getters and setters omitted for brevity }
在這種情況下, MyKey類別作為主鍵類,其中的id 和version 欄位皆使用@Id 註解。
透過使用 @EmbeddedId 或 @IdClass 註解,JPA 可以有效管理複合主鍵,促進單一實體內資料版本的儲存和檢索。
以上是JPA中如何使用組合主鍵來管理資料版本?的詳細內容。更多資訊請關注PHP中文網其他相關文章!