Pengendalian Kunci Utama Komposit dengan JPA
Versi data memerlukan keupayaan untuk menduplikasi entiti dengan versi berbeza, menjadikannya penting untuk mencipta komposit kunci utama untuk entiti.
Definisi Entiti dengan Kunci Utama Komposit
Dalam JPA, kunci primer komposit boleh ditakrifkan sama ada menggunakan anotasi @EmbeddedId atau @IdClass.
Menggunakan @EmbeddedId
Tentukan kelas berasingan (@Embedded anotasi) untuk kunci dan kemudian anotasikannya dengan @EmbeddedId dalam entiti:
<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>
Menggunakan @IdClass
Sebagai alternatif, anotasi kelas dengan @IdClass dan takrifkan atribut ID sebagai @Id dalam kelas:
<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>
Pendua Entiti dengan Versi
Setelah entiti ditakrifkan, ia boleh diduplikasi dengan versi baharu. Contohnya, untuk mencipta versi baharu entiti pertama dengan 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>
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Versi Data dengan Kunci Utama Komposit dalam JPA?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!