Maison  >  Article  >  Java  >  Comment réparer l'erreur « org.hibernate.MappingException : entité inconnue » dans Hibernate 5 avec MySQL ?

Comment réparer l'erreur « org.hibernate.MappingException : entité inconnue » dans Hibernate 5 avec MySQL ?

DDD
DDDoriginal
2024-11-02 15:47:29539parcourir

How to Fix

Hibernate 5 : résolution de l'erreur "org.hibernate.MappingException : entité inconnue"

Lors de l'intégration d'Hibernate 5.0 avec MySQL, vous pouvez rencontrer l'erreur "org.hibernate.MappingException : entité inconnue." Ce problème survient spécifiquement avec les versions 5.0.0 et 5.0.1 d'Hibernate, alors qu'Hibernate 4.3.9 fonctionne sans ce problème.

Cause de l'erreur

Dans Hibernate 5 , un changement dans la façon dont Hibernate lit sa configuration a conduit à cette erreur. Plus précisément, les informations de configuration lues à partir de hibernate.cfg.xml ne sont pas correctement appliquées lors de l'utilisation de StandardServiceRegistryBuilder pour construire SessionFactory.

Solution

Pour résoudre cette erreur, il Voici quelques approches à considérer :

Utilisation de la méthode de configuration de base

Pour une solution plus simple, évitez d'utiliser StandardServiceRegistryBuilder et créez plutôt la fabrique de sessions directement à partir de l'objet Configuration. :

<code class="java">SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();</code>

Chargement des propriétés

Si vous avez des propriétés supplémentaires définies en dehors de hibernate.properties, vous pouvez les charger à l'aide de StandardServiceRegistryBuilder :

<code class="java">ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder()
    .configure()
    .loadProperties("hibernate-h2.properties")
    .build();
SessionFactory sf = new Configuration().buildSessionFactory(serviceRegistry);</code>

Utilisation de Fluent-Hibernate

Vous pouvez également utiliser la bibliothèque fluent-hibernate pour une approche plus pratique, comme démontré dans le projet GitHub « fluent-hibernate-mysql ».

Considérations supplémentaires

Notez que l'exemple du didacticiel Hibernate 5 dans la section 1.1.6 est incorrect. Il ne parvient pas à charger la configuration appropriée lors de la construction de SessionFactory, ce qui entraîne des problèmes de mappage.

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!

Déclaration:
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