使用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中文網其他相關文章!