Maison > Java > javaDidacticiel > Hibernate 5 : Pourquoi est-ce que j'obtiens l'erreur « org.hibernate.MappingException : entité inconnue » et comment puis-je la corriger ?

Hibernate 5 : Pourquoi est-ce que j'obtiens l'erreur « org.hibernate.MappingException : entité inconnue » et comment puis-je la corriger ?

Barbara Streisand
Libérer: 2024-10-28 16:21:02
original
307 Les gens l'ont consulté

  Hibernate 5: Why am I Getting the

Hibernate 5 : Résolution de l'erreur « org.hibernate.MappingException : entité inconnue »

Problème :

Vous avez rencontré l'erreur « org.hibernate.MappingException : Entité inconnue » en essayant d'intégrer Hibernate 5.0 à MySQL. Cette erreur se produit avec les versions Hibernate 5.0.0 et 5.0.1 mais pas avec Hibernate 4.3.9.

Cause :

Le problème survient en raison d'un changement dans le La manière dont SessionFactory est créée avec Hibernate 5. L'utilisation de la méthode Configuration().buildSessionFactory(sr) comme dans les versions antérieures d'Hibernate ne fonctionne plus, car elle supprime les informations de mappage.

Solution :

Pour résoudre cette erreur, il existe deux approches :

1. Configuration simplifiée :

Pour les fichiers de configuration standard comme hibernate.cfg.xml et hibernate.properties, vous pouvez créer SessionFactory sans utiliser ServiceRegistry :

<code class="java">SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();</code>
Copier après la connexion

2. Utilisation de StandardServiceRegistryBuilder pour charger les propriétés :

Si vous avez des propriétés dans des fichiers autres que hibernate.properties, vous pouvez utiliser StandardServiceRegistryBuilder pour les charger :

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 système de fichiers :

<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

Remarques supplémentaires :

  • Le tutoriel Hibernate 5 contient une approche incorrecte pour créer SessionFactory. Il montre la méthode new Configuration().configure().buildSessionFactory(new StandardServiceRegistryBuilder().build()), qui ne configure pas correctement Hibernate.
  • Ce problème affecte les versions Hibernate 5.0.0 et 5.0.1. . Pour Hibernate 5.1 et versions ultérieures, la méthode de configuration d'origine Configuration().buildSessionFactory(sr) fonctionne comme prévu.

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