@GeneratedValue Polymorphic Abstract Superclass over MySQL
Apabila bekerja dengan superclass abstrak dan @GeneratedValue dalam aplikasi Spring MVC menggunakan Hibernate dan MySQL, ia adalah penting untuk mempertimbangkan keperluan khusus dan had pangkalan data. Ralat "Jadual 'docbd.hibernate_sequences' tidak wujud" sering timbul apabila GenerationType.TABLE digunakan dengan MySQL, yang tidak menyokong jujukan secara asli.
Gambaran Keseluruhan Masalah
Isu ini berlaku kerana GenerationType.TABLE memerlukan jadual yang dipanggil "hibernate_sequences" untuk menyimpan nilai urutan. Oleh kerana MySQL tidak mempunyai jadual ini, Hibernate cuba menciptanya, mengakibatkan ralat. Selain itu, menggunakan GenerationType.IDENTITY tidak boleh dilaksanakan apabila mengurus ID dalam superclass abstrak.
Penyelesaian
Walaupun terhad dengan GenerationType.TABLE dan GenerationType.IDENTITY, terdapat penyelesaian yang menangani kedua-dua isu. Daripada bergantung pada jadual jujukan atau AUTO_INCREMENT, mengambil ID seterusnya secara manual dan menetapkannya sebelum menyimpan entiti akan menyelesaikan masalah. Pendekatan ini melibatkan langkah berikut:
Pendekatan ini dengan berkesan menjana ID baharu tanpa bergantung pada jujukan atau AUTO_INCREMENT. Ia memberikan fleksibiliti yang lebih besar dan memastikan bahawa isu urutan yang tidak wujud dalam MySQL diselesaikan.
Atas ialah kandungan terperinci Bagaimana untuk Menjana ID untuk Superclass Abstrak dalam Aplikasi Spring MVC menggunakan Hibernate dan MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!