Ralat Konfigurasi Dialek Hibernate: 'hibernate.dialect' Not Set
Isu:
Apabila menjalankan Aplikasi Spring Boot menggunakan Hibernate, ralat ditemui menyatakan:
"org.hibernate.HibernateException: Akses kepada DialectResolutionInfo tidak boleh batal apabila 'hibernate.dialect' tidak ditetapkan"
Punca:
Konfigurasi Hibernate tiada sifat hibernate.dialect, yang menentukan dialek pangkalan data untuk digunakan. Tanpa sifat ini, Hibernate tidak dapat menentukan dialek yang betul dan mewujudkan sambungan pangkalan data.
Penyelesaian:
1. Aplikasi Spring Boot:
Untuk aplikasi Spring Boot, adalah disyorkan untuk menggunakan sifat aplikasi atau fail YAML untuk mengkonfigurasi Hibernate. Alih keluar kelas konfigurasi Hibernate tersuai (cth., HibernateConfig) dan tambahkan sifat berikut pada fail application.properties atau application.yml anda:
# Database Configuration spring.datasource.url=jdbc:postgresql://localhost:5432/teste?charSet=LATIN1 spring.datasource.username=klebermo spring.datasource.password=123 # Hibernate Configuration spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect spring.jpa.show-sql=false spring.jpa.hibernate.ddl-auto=create
Spring Boot akan mengkonfigurasi SessionFactory secara automatik menggunakan sifat ini.
2. Konfigurasi Java:
Jika anda lebih suka menggunakan konfigurasi Java, alih keluar kaedah hibernateProperties() daripada kelas HibernateConfig anda dan tambahkan kod berikut:
@Bean public HibernateJpaSessionFactoryBean sessionFactory(EntityManagerFactory emf) { HibernateJpaSessionFactoryBean factory = new HibernateJpaSessionFactoryBean(); factory.setEntityManagerFactory(emf); return factory; }
Ini akan mencipta SessionFactory yang membungkus EntityManagerFactory. Anda boleh mengakses SessionFactory kemudian menggunakan entityManagerFactory.unwrap(SessionFactory.class).
Nota Tambahan:
Dengan mengikuti langkah ini, anda boleh menyelesaikan ralat konfigurasi dialek dan berjaya mewujudkan sambungan pangkalan data menggunakan Hibernate dalam aplikasi Spring Boot anda.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan \'hibernate.dialect\' Hibernate Tidak Tetapkan Ralat dalam But Spring?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!