Bagaimana untuk menyelesaikan "org.hibernate.HibernateException: Akses kepada DialectResolutionInfo tidak boleh batal apabila 'hibernate.dialect' tidak ditetapkan"?
Mesej ralat "org.hibernate.HibernateException: Akses kepada DialectResolutionInfo tidak boleh batal apabila 'hibernate.dialect' not set" berlaku apabila Hibernate tidak dapat menentukan dialek pangkalan data. Ini biasanya disebabkan oleh ketiadaan sifat hibernate.dialect dalam konfigurasi Hibernate. Begini cara untuk menyelesaikan isu ini:
1. Alih keluar Konfigurasi Hibernate Tersuai:
Pastikan anda tidak mentakrifkan sebarang konfigurasi Hibernate tersuai dalam aplikasi anda, kerana Spring Boot menyediakan konfigurasi automatik untuk Hibernate. Alih keluar kelas @Configuration (HibernateConfig dalam contoh anda) yang mentakrifkan kacang sessionFactory(), kerana Spring Boot akan mencipta kacang yang diperlukan untuk anda.
2. Tambah Sifat Pangkalan Data:
Dalam fail application.properties anda, masukkan sifat berikut untuk menentukan butiran pangkalan data anda dan konfigurasi Hibernate:
spring.datasource.url=jdbc:postgresql://localhost:5432/teste?charSet=LATIN1 spring.datasource.username=klebermo spring.datasource.password=123 spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect spring.jpa.show-sql=false spring.jpa.hibernate.ddl-auto=create
3. Alih keluar Kebergantungan commons-dbcp:
Spring Boot menggunakan kebergantungan HikariCP yang lebih cekap secara lalai. Alih keluar kebergantungan commons-dbcp daripada fail pom.xml anda untuk membenarkan Spring Boot mengurus pengumpulan sambungan pangkalan data.
4. Kemas kini Versi Spring Boot (Pilihan):
Jika anda menggunakan versi Spring Boot yang lebih lama, tingkatkan kepada yang lebih terbaharu untuk memanfaatkan peningkatan terkini. Spring Boot 2.x menyokong kacang SessionFactory sebagai lanjutan daripada EntityManagerFactory. Anda boleh mendapatkan SessionFactory dengan menghantar EntityManagerFactory atau menggunakan kaedah buka bungkus.
5. Gunakan @SpringBootApplication:
Daripada menggunakan berbilang anotasi (@Configuration, @EnableAutoConfiguration dan @ComponentScan), anda boleh menggunakan satu anotasi @SpringBootApplication dalam versi Spring Boot yang lebih terkini. Anotasi ini menggabungkan kefungsian ketiga-tiga anotasi.
Berikut ialah contoh kelas aplikasi yang dikemas kini:
@SpringBootApplication @ComponentScan("com.spring.app") public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan \'org.hibernate.HibernateException: Akses kepada DialectResolutionInfo tidak boleh batal apabila \'hibernate.dialect\' tidak ditetapkan\'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!