Memahami Medan Peningkatan Auto dengan Anotasi JPA dalam MySQL
Dalam senario ini, menyimpan objek Operator ke pangkalan data MySQL menggunakan pertemuan anotasi JPA sesuatu isu. Punca masalah ini terletak dalam konfigurasi medan kenaikan automatik.
Untuk menggunakan lajur MySQL AUTO_INCREMENT, adalah penting untuk menggunakan strategi IDENTITI. Ini boleh dicapai menggunakan anotasi berikut:
@Id @GeneratedValue(strategy=GenerationType.IDENTITY) private Long id;
Anotasi ini memastikan Hibernate menjana strategi yang sesuai berdasarkan keupayaan auto-increment pangkalan data.
Walau bagaimanapun, nampaknya Hibernate tidak memancarkan lajur id dalam pernyataan sisipan SQL. Untuk menyelesaikan masalah ini, sahkan bahawa dialek MySQL telah ditakrifkan dalam konfigurasi Hibernate, seperti MySQL5InnoDBDialect atau MySQL5Dialect.
Selain itu, adalah penting untuk memastikan bahawa jadual DDL adalah betul. Jadual pengendali hendaklah menyerupai struktur berikut:
CREATE TABLE `operator` ( `id` INT(10) NOT NULL AUTO_INCREMENT, `username` VARCHAR(50) NOT NULL, `password` VARCHAR(50) NOT NULL, `active` INT(1) NOT NULL, PRIMARY KEY (`id`) );
Dengan mengikut garis panduan ini, isu dengan menganotasi medan autokenaikan harus diselesaikan. Walau bagaimanapun, jika masalah berterusan, pertimbangkan untuk memeriksa direktori binaan, semak semula log untuk sebarang kejadian luar biasa atau periksa semula kod untuk mengenal pasti kemungkinan ketidakkonsistenan.
Atas ialah kandungan terperinci Bagaimana untuk Menganotasi Medan Auto-Increment dengan betul dalam JPA untuk MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!