Rumah >Java >javaTutorial >Bagaimanakah kunci utama komposit boleh digunakan untuk mengurus versi data dalam JPA?

Bagaimanakah kunci utama komposit boleh digunakan untuk mengurus versi data dalam JPA?

DDD
DDDasal
2024-10-30 16:44:25537semak imbas

How can composite primary keys be used to manage data versions in JPA?

Mencipta dan Mengendalikan Kunci Utama Komposit dalam JPA

Untuk mengurus versi data dalam entiti, mencipta kunci utama komposit membolehkan penduaan entri berdasarkan nombor versi. Pertimbangkan pelaksanaan berikut:

@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
}

Menggunakan pendekatan ini, kedua-dua medan id dan versi membentuk kunci utama komposit. Ini membolehkan penciptaan berbilang versi untuk setiap rekod data:

Entity 1: id = 1, version = 0, columnA = "Data Entry 1"
Entity 2: id = 1, version = 1, columnA = "Updated Data Entry 1"

Kaedah alternatif untuk mentakrifkan kunci utama komposit menggunakan anotasi @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
}

Dalam kes ini, kelas MyKey berfungsi sebagai kelas kunci utama, dan medan id serta versi di dalamnya dianotasi dengan @Id.

Dengan menggunakan sama ada anotasi @EmbeddedId atau @IdClass, JPA boleh mengurus kunci utama komposit dengan berkesan, memudahkan penyimpanan dan mendapatkan semula versi data dalam satu entiti.

Atas ialah kandungan terperinci Bagaimanakah kunci utama komposit boleh digunakan untuk mengurus versi data dalam JPA?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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