Rumah >Java >javaTutorial >Bagaimana untuk Membetulkan \'org.hibernate.HibernateException: Akses kepada DialectResolutionInfo tidak boleh batal apabila \'hibernate.dialect\' tidak ditetapkan\'?

Bagaimana untuk Membetulkan \'org.hibernate.HibernateException: Akses kepada DialectResolutionInfo tidak boleh batal apabila \'hibernate.dialect\' tidak ditetapkan\'?

Linda Hamilton
Linda Hamiltonasal
2024-11-25 08:03:11354semak imbas

How to Fix

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn