Rumah > Java > javaTutorial > teks badan

Bagaimana untuk Melaksanakan Versi Data dengan Kunci Utama Komposit dalam JPA?

Mary-Kate Olsen
Lepaskan: 2024-10-27 11:01:01
asal
654 orang telah melayarinya

How to Implement Data Versioning with Composite Primary Keys in JPA?

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan