Menyelesaikan masalah "Tiada Pemetaan Dialek untuk Jenis JDBC: 1111" dalam Spring JPA dengan MySQL
Dalam aplikasi Spring JPA anda, anda menemui " Tiada pemetaan Dialek untuk jenis JDBC: 1111" pengecualian semasa mencipta Hibernate SessionFactory. Walaupun mengkonfigurasi MySQL5Dialect yang betul, ralat ini berterusan.
Memeriksa Masalah
Pengecualian menunjukkan bahawa pangkalan data mengembalikan jenis yang dialek yang dikonfigurasikan (MySQL5Dialect) tidak mengenali. Ini berkemungkinan berkaitan dengan jenis JDBC 1111, yang biasanya mewakili jenis data UUID.
Penyelesaian
Isu ini boleh diselesaikan dengan mengubah suai pertanyaan anda untuk menghantar Lajur UUID sebagai jenis varchar. Ini boleh dicapai menggunakan sintaks berikut dalam pertanyaan JPQL anda:
SELECT Cast(columnName as varchar) id, ...
Dalam kes khusus anda, pertanyaan yang dikemas kini akan kelihatan seperti ini:
@Query(value = "SELECT Cast(stuid as varchar) id, SUM(marks) as marks FROM studs GROUP BY stuid", nativeQuery = true) List<Student> findMarkGroupByStuid();
Pertimbangan Tambahan
Dengan menghantar lajur UUID, pertanyaan anda akan mengembalikan data dalam format yang serasi dengan dialek yang dikonfigurasikan. Ini sepatutnya menyelesaikan ralat "Tiada pemetaan Dialek untuk jenis JDBC: 1111" dan membenarkan aplikasi anda berjaya dimulakan.
Atas ialah kandungan terperinci Mengapa Apl JPA Spring Saya Membuang 'Tiada Pemetaan Dialek untuk Jenis JDBC: 1111' dengan MySQL dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!