Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Menjana Nilai Jujukan Pangkalan Data untuk Lajur Bukan ID dalam Hibernate?
Jujukan Hibernate untuk Lajur Bukan ID
Menggunakan jujukan pangkalan data untuk menjana nilai bagi lajur bukan kunci utama dalam Hibernate ialah keperluan biasa. Malangnya, hibernate pada masa ini tidak menyediakan kaedah terbina dalam untuk mencapai ini.
Anotasi @GeneratedValue hanya boleh digunakan bersama-sama dengan @Id untuk menjana nilai secara automatik bagi kunci utama. Cabaran timbul kerana Hibernate menganggap bahawa sifat bukan ID harus dikendalikan oleh aplikasi pengguna.
Untuk mengatasi pengehadan ini, penyelesaian melibatkan penciptaan entiti berasingan dengan Id yang dijana secara automatik. Entiti ini kemudiannya bertanggungjawab untuk menjana nilai jujukan yang boleh diberikan kepada sifat bukan ID dalam entiti sasaran.
Pertimbangkan contoh berikut:
@Entity public class GeneralSequenceNumber { @Id @GeneratedValue(...) private Long number; } @Entity public class MyEntity { @Id private Long id; @OneToOne(...) private GeneralSequenceNumber myVal; }
Dalam senario ini, a contoh baharu GeneralSequenceNumber dicipta dan medan nombornya dijana secara automatik. Nilai ini kemudiannya diberikan kepada sifat myVal dalam MyEntity semasa kegigihan entiti.
Walaupun penyelesaian ini menambah entiti tambahan, ia menyediakan penyelesaian untuk mengurus jujukan sifat bukan ID dalam Hibernate. Sehingga pendekatan yang lebih lancar dilaksanakan, kaedah ini menawarkan penyelesaian praktikal untuk kes penggunaan biasa ini.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjana Nilai Jujukan Pangkalan Data untuk Lajur Bukan ID dalam Hibernate?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!