Pernyataan Masalah:
Dalam But Spring aplikasi yang menggunakan Hibernate melalui Spring JPA, ralat berikut berlaku:
org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set
Punca:
Ralat ini menunjukkan bahawa dialek Hibernate belum ditentukan dalam konfigurasi Hibernate.
Penyelesaian:
Untuk menyelesaikan isu ini, dialek Hibernate hendaklah ditetapkan secara eksplisit dalam konfigurasi aplikasi. Dalam Spring Boot, ini boleh dicapai dengan menambahkan sifat berikut pada fail application.properties:
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect
Ganti PostgreSQLDialect dengan dialek yang sesuai untuk pangkalan data anda.
Konfigurasi Alternatif :
Untuk pengguna yang memerlukan akses kepada kedua-dua EntityManagerFactory dan SessionFactory, konfigurasi HibernateJpaSessionFactoryBean berikut boleh digunakan:
@Configuration public class HibernateConfig { @Bean public HibernateJpaSessionFactoryBean sessionFactory(EntityManagerFactory emf) { HibernateJpaSessionFactoryBean factory = new HibernateJpaSessionFactoryBean(); factory.setEntityManagerFactory(emf); return factory; } }
Menghapuskan Ketergantungan:
Selain itu, kebergantungan commons-dbcp boleh dialih keluar kerana Spring Boot akan mengkonfigurasi secara automatik semakin cekap HikariCP.
Amalan Terbaik:
Adalah disyorkan untuk mengelakkan konfigurasi manual Hibernate dalam Spring Boot, sebanyak mungkin, dan bergantung pada konfigurasi auto. Ini memudahkan persediaan aplikasi dan menjadikannya kurang terdedah kepada ralat. Anotasi @SpringBootApplication boleh digunakan untuk mendayakan semua konfigurasi yang diperlukan untuk aplikasi Spring Boot.
Contoh Kod:
Aplikasi asas Spring Boot yang menggunakan Hibernate dan JPA, dengan konfigurasi yang betul, boleh kelihatan seperti ini:
@SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Isu Penyelesaian Dialek Hibernate dalam Boot Spring?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!