Comment résoudre "org.hibernate.HibernateException : l'accès à DialectResolutionInfo ne peut pas être nul lorsque 'hibernate.dialect' n'est pas défini" ?
Le message d'erreur "org.hibernate.HibernateException : l'accès à DialectResolutionInfo ne peut pas être nul lorsque 'hibernate.dialect' ne l'est pas. set" se produit lorsqu'Hibernate ne parvient pas à déterminer le dialecte de la base de données. Ceci est généralement dû à l'absence de la propriété hibernate.dialect dans la configuration Hibernate. Voici comment résoudre ce problème :
1. Supprimer la configuration Hibernate personnalisée :
Assurez-vous de ne définir aucune configuration Hibernate personnalisée dans votre application, car Spring Boot fournit une configuration automatique pour Hibernate. Supprimez la classe @Configuration (HibernateConfig dans votre exemple) qui définit le bean sessionFactory(), car Spring Boot créera les beans requis pour vous.
2. Ajouter des propriétés de base de données :
Dans votre fichier application.properties, incluez les propriétés suivantes pour spécifier les détails de votre base de données et la configuration d'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. Supprimez la dépendance commons-dbcp :
Spring Boot utilise par défaut la dépendance HikariCP plus efficace. Supprimez la dépendance commons-dbcp de votre fichier pom.xml pour permettre à Spring Boot de gérer le pool de connexions à la base de données.
4. Mettre à jour la version de Spring Boot (facultatif) :
Si vous utilisez une ancienne version de Spring Boot, effectuez une mise à niveau vers une version plus récente pour tirer parti des dernières améliorations. Spring Boot 2.x prend en charge le bean SessionFactory en tant qu'extension d'EntityManagerFactory. Vous pouvez obtenir une SessionFactory en lançant EntityManagerFactory ou en utilisant la méthode unwrap.
5. Utilisez @SpringBootApplication :
Au lieu d'utiliser plusieurs annotations (@Configuration, @EnableAutoConfiguration et @ComponentScan), vous pouvez utiliser une seule annotation @SpringBootApplication dans les versions plus récentes de Spring Boot. Cette annotation combine les fonctionnalités des trois annotations.
Voici un exemple de classe d'application mise à jour :
@SpringBootApplication @ComponentScan("com.spring.app") public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!