Maison  >  Article  >  Java  >  Comment réparer « MappingException : entité inconnue » dans Hibernate 5 lors de l'intégration avec MySQL ?

Comment réparer « MappingException : entité inconnue » dans Hibernate 5 lors de l'intégration avec MySQL ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-31 02:50:31740parcourir

How to Fix

Hibernate 5 : MappingException : entité inconnue

Dans Hibernate 5, l'erreur org.hibernate.MappingException : entité inconnue peut se produire lors de la tentative de intégrer avec MySQL. Ce problème est spécifique aux versions 5.0.0 et 5.0.1 d'Hibernate et est résolu dans les versions suivantes.

原因

L'erreur provient d'un changement dans Hibernate 5 comportement. Dans les versions antérieures, les informations de configuration étaient conservées dans Configuration même après la création de ServiceRegistry. Cependant, dans Hibernate 5, la configuration perd ces informations lorsque configuration.buildSessionFactory(sr) est appelée.

修复

1. Fichiers de configuration standard :

Si vous utilisez les fichiers standard hibernate.cfg.xml et hibernate.properties, créez directement la fabrique de sessions :

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

2. Chargement des propriétés :

Si les propriétés sont stockées dans un fichier différent, utilisez StandardServiceRegistryBuilder :

Chargement des propriétés en tant que ressource :

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

Chargement des propriétés à partir d'un chemin de fichier :

<code class="java">File propertiesPath = new File("some_path");
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder()
    .configure()
    .loadProperties(propertiesPath)
    .build();
SessionFactory sf = new Configuration().buildSessionFactory(serviceRegistry);</code>

3. Utilisation de l'utilitaire Fluent Hibernate :

Pour un exemple complet utilisant cette approche, reportez-vous au projet fluent-hibernate-mysql sur GitHub.

4. Éviter les recommandations incorrectes du didacticiel Hibernate 5 :

L'extrait de code erroné fourni dans le didacticiel Hibernate 5 :

<code class="java">return new Configuration().configure().buildSessionFactory(
                new StandardServiceRegistryBuilder().build() );</code>

n'effectue pas une configuration appropriée et doit être évité.

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