Maison > Java > javaDidacticiel > Pourquoi mon application Spring Boot Hibernate renvoie-t-elle \'org.hibernate.HibernateException : l'accès à DialectResolutionInfo ne peut pas être nul lorsque \'hibernate.dialect\' n'est pas défini\' ?

Pourquoi mon application Spring Boot Hibernate renvoie-t-elle \'org.hibernate.HibernateException : l'accès à DialectResolutionInfo ne peut pas être nul lorsque \'hibernate.dialect\' n'est pas défini\' ?

Susan Sarandon
Libérer: 2024-11-28 20:39:17
original
525 Les gens l'ont consulté

Why Does My Spring Boot Hibernate Application Throw

org.hibernate.HibernateException : l'accès à DialectResolutionInfo ne peut pas être nul lorsque 'hibernate.dialect' n'est pas défini

Lors de la tentative d'exécution d'une application Spring-Boot qui utilise Hibernate via Spring-JPA, vous pouvez rencontrer l'erreur suivante :

org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set
Copier après la connexion

Cette erreur indique que le Le dialecte Hibernate n'a pas été correctement configuré. Le dialecte est responsable de la traduction des commandes SQL spécifiques à la base de données.

Solution

Pour résoudre cette erreur, suivez ces étapes :

  1. Configurer les propriétés Hibernate : Dans votre fichier application.properties ou hibernate.cfg.xml, définissez la propriété hibernate.dialect sur le dialecte approprié pour votre base de données. Par exemple, si vous utilisez PostgreSQL, définissez-le sur org.hibernate.dialect.PostgreSQLDialect.
  2. Utiliser la configuration automatique de Spring Boot : Par défaut, Spring Boot configurera automatiquement Hibernate en fonction de les paramètres dans votre fichier application.properties. Assurez-vous d'avoir la dépendance spring-boot-starter-data-jpa dans votre projet et que vous utilisez Spring Boot versions 1.4 ou ultérieures.

Si vous avez besoin d'accéder directement à SessionFactory, vous pouvez utilisez l'extrait de code suivant :

@Bean
public HibernateJpaSessionFactoryBean sessionFactory(EntityManagerFactory emf) {
    HibernateJpaSessionFactoryBean factory = new HibernateJpaSessionFactoryBean();
    factory.setEntityManagerFactory(emf);
    return factory;
}
Copier après la connexion

Alternativement, vous pouvez obtenir une SessionFactory en y castant EntityManagerFactory, à partir d'Hibernate 5.

Conseils supplémentaires

  • Supprimez la dépendance commons-dbcp car Spring Boot utilise l'implémentation plus efficace de HikariCP.
  • Utilisez plutôt l'annotation @SpringBootApplication de @Configuration, @EnableAutoConfiguration et @ComponentScan lors du récent Spring Boot versions.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal