Rumah >Java >javaTutorial >Bolehkah JPA Hibernate Menjana Urutan untuk Lajur Bukan Utama Utama?

Bolehkah JPA Hibernate Menjana Urutan untuk Lajur Bukan Utama Utama?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-07 08:00:24224semak imbas

Can Hibernate JPA Generate Sequences for Non-PrimaryKey Columns?

Jujukan JPA Hibernate untuk Lajur Bukan Pengecam

Soalan:

Adakah mungkin untuk jana nilai berasaskan jujukan untuk lajur bukan kunci utama menggunakan Hibernate JPA?

Jawapan:

Tidak, JPA Hibernate tidak secara langsung menyokong penjanaan nilai berasaskan jujukan untuk lajur bukan pengecam. Anotasi @GeneratedValue hanya digunakan dengan @Id untuk menjana nombor automatik.

Penyelesaian:

Untuk mencapai kefungsian ini, penyelesaian adalah dengan mencipta entiti berasingan dengan Id yang dijana dan hubungan satu dengan satu dengan entiti asal, seperti yang ditunjukkan di bawah:

@Entity
public class GeneralSequenceNumber {
    @Id
    @GeneratedValue(...)
    private Long number;
}

@Entity 
public class MyEntity {
    @Id ..
    private Long id;

    @OneToOne(...)
    private GeneralSequnceNumber myVal;
}

Dalam penyelesaian ini, entiti GeneralSequenceNumber menguruskan penjanaan jujukan, sambil mengekalkan hubungan dengan MyEntity yang asal.

Atas ialah kandungan terperinci Bolehkah JPA Hibernate Menjana Urutan untuk Lajur Bukan Utama Utama?. 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