場景:
考慮需要儲存多個版本的場景相同資料條目的數據,由id 和Version 列表示。目標是建立一個可以複製具有不同版本的條目的實體。
實體定義:
要定義具有複合主鍵的實體,您可以使用以下方法:
<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>
<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中文網其他相關文章!