Maison > Java > javaDidacticiel > 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
Libérer: 2024-10-31 02:50:31
original
786 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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!

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