
Menganotasi Medan Autoincrement MySQL dengan Anotasi JPA
Dalam JPA, anotasi @GeneratedValue digunakan untuk menentukan cara nilai sesuatu yang dijana secara automatik lajur hendaklah dijana. Untuk MySQL, lajur kenaikan automatik biasanya dipetakan dengan strategi GenerationType.IDENTITY. Walau bagaimanapun, jika SQL yang dijana termasuk medan autokenaikan, mungkin terdapat ketidakpadanan konfigurasi.
Dalam kes yang diberikan, objek Operator mempunyai medan autokenaikan berikut:
@Id @GeneratedValue private Long id;
Anotasi ini harus menghasilkan SQL berikut:
insert
into
Operator
(active, password, username)
values
(?, ?, ?)Walau bagaimanapun, log yang disediakan menunjukkan bahawa SQL termasuk id lajur:
Hibernate: insert into Operator (active, password, username, id) values (?, ?, ?, ?)
Untuk menyelesaikannya, pastikan langkah berikut diikuti:
CREATE TABLE `operator` ( `id` INT(10) NOT NULL AUTO_INCREMENT, ...
Jika isu itu berterusan, mungkin perlu untuk menyatakan secara eksplisit strategi penjanaan identiti:
@Id @GeneratedValue(strategy=GenerationType.IDENTITY) private Long id;
Atas ialah kandungan terperinci Bagaimana untuk Memperbaiki Kemasukan Medan Auto-Increment Hibernate yang Tidak Dijangka dalam Penyata INSERT MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!
perkataan kepada ppt
Bagaimana untuk mencipta folder baharu dalam pycharm
Bagaimana untuk mengeksport Apipost di luar talian
Perbezaan antara ++a dan a++ dalam bahasa c
Cara menggunakan fungsi isihan
Apakah yang perlu saya lakukan jika video web tidak boleh dibuka?
Bagaimana untuk memadam halaman kosong dalam word
Perbezaan antara xdata dan data