Wie löst man „org.hibernate.HibernateException: Der Zugriff auf DialectResolutionInfo darf nicht null sein, wenn ‚hibernate.dialect‘ nicht festgelegt ist“?
Die Fehlermeldung „org.hibernate.HibernateException: Der Zugriff auf DialectResolutionInfo darf nicht null sein, wenn ‚hibernate.dialect‘ nicht festgelegt ist“ Tritt auf, wenn Hibernate den Datenbankdialekt nicht ermitteln kann. Dies wird typischerweise durch das Fehlen der Eigenschaft hibernate.dialect in der Hibernate-Konfiguration verursacht. So beheben Sie dieses Problem:
1. Benutzerdefinierte Hibernate-Konfiguration entfernen:
Stellen Sie sicher, dass Sie in Ihrer Anwendung keine benutzerdefinierte Hibernate-Konfiguration definieren, da Spring Boot eine automatische Konfiguration für Hibernate bereitstellt. Entfernen Sie die @Configuration-Klasse (in Ihrem Beispiel HibernateConfig), die die sessionFactory()-Bean definiert, da Spring Boot die erforderlichen Beans für Sie erstellt.
2. Datenbankeigenschaften hinzufügen:
Fügen Sie in Ihre application.properties-Datei die folgenden Eigenschaften ein, um Ihre Datenbankdetails und die Ruhezustandskonfiguration anzugeben:
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. Entfernen Sie die commons-dbcp-Abhängigkeit:
Spring Boot verwendet standardmäßig die effizientere HikariCP-Abhängigkeit. Entfernen Sie die commons-dbcp-Abhängigkeit aus Ihrer pom.xml-Datei, damit Spring Boot das Datenbankverbindungspooling verwalten kann.
4. Spring Boot-Version aktualisieren (optional):
Wenn Sie eine ältere Version von Spring Boot verwenden, aktualisieren Sie auf eine neuere Version, um die neuesten Verbesserungen zu nutzen. Spring Boot 2.x unterstützt die SessionFactory-Bean als Erweiterung der EntityManagerFactory. Sie können eine SessionFactory erhalten, indem Sie die EntityManagerFactory umwandeln oder die Unwrap-Methode verwenden.
5. Verwenden Sie @SpringBootApplication:
Anstatt mehrere Annotationen (@Configuration, @EnableAutoConfiguration und @ComponentScan) zu verwenden, können Sie in neueren Versionen von Spring Boot eine einzelne @SpringBootApplication-Annotation verwenden. Diese Annotation kombiniert die Funktionalität aller drei Annotationen.
Hier ist ein Beispiel einer aktualisierten Anwendungsklasse:
@SpringBootApplication @ComponentScan("com.spring.app") public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
Das obige ist der detaillierte Inhalt vonWie behebt man „org.hibernate.HibernateException: Der Zugriff auf DialectResolutionInfo darf nicht null sein, wenn „hibernate.dialect' nicht festgelegt ist'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!