Maison > Java > javaDidacticiel > Pourquoi est-ce que j'obtiens « org.hibernate.MappingException : entité inconnue » dans Hibernate 5 avec MySQL ?

Pourquoi est-ce que j'obtiens « org.hibernate.MappingException : entité inconnue » dans Hibernate 5 avec MySQL ?

Mary-Kate Olsen
Libérer: 2024-10-29 16:35:02
original
1091 Les gens l'ont consulté

Why am I Getting

Hibernate 5 : Comprendre « org.hibernate.MappingException : entité inconnue »

Lors de l'intégration d'Hibernate 5.0 avec MySQL, les développeurs peuvent rencontrer le message d'erreur « org.hibernate. MappingException : entité inconnue." Ce problème se produit dans Hibernate 5.0.0 et 5.0.1 mais pas dans Hibernate 4.3.9.

Analyse du problème

Pour résoudre cette erreur, il est essentiel de comprendre pourquoi elle se produit. Dans Hibernate 5, contrairement aux versions précédentes, le processus de configuration par défaut ne charge pas automatiquement les mappages d'entités. Cela signifie que lorsque configuration.buildSessionFactory(sr) est appelé, il manque des informations sur les entités mappées.

Tutoriel Hibernate 5 incorrect :

Le didacticiel Hibernate 5 fournit un incorrect exemple de code qui conduit à cette erreur :

return new Configuration().configure().buildSessionFactory(
                new StandardServiceRegistryBuilder().build() );
Copier après la connexion

Ce code ne configure pas correctement les mappages d'entités.

Solution : Chargement des mappages d'entités

Pour résoudre le problème, vous pouvez charger correctement les mappages d'entités en utilisant l'une des méthodes suivantes :

  1. Fichiers de configuration standard : Utilisez l'approche simplifiée si vous disposez de fichiers de configuration standard hibernate.cfg.xml et hibernate.properties :

    SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
    Copier après la connexion
  2. Charger les propriétés : Pour les autres fichiers de propriétés, utilisez un StandardServiceRegistryBuilder pour charger les propriétés :

    ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder()
    .configure().loadProperties("hibernate-h2.properties").build();
    SessionFactory sf = new Configuration().buildSessionFactory(serviceRegistry);  
    Copier après la connexion

    Cela nécessite que le fichier hibernate-h2.properties soit dans le chemin de classe.

  3. Charger les propriétés à partir du chemin : Utilisez cette méthode pour charger les propriétés à partir d'un chemin de fichier spécifique :

    File propertiesPath = new File("some_path");
    ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder()
    .configure().loadProperties(propertiesPath).build();
    SessionFactory sf = new Configuration().buildSessionFactory(serviceRegistry);
    Copier après la connexion

Conclusion

En utilisant l'une de ces solutions pour charger les mappages d'entités, vous pouvez résoudre l'erreur « Entité inconnue » lors de l'intégration d'Hibernate 5.0 avec MySQL. N'oubliez pas que l'exemple de code incorrect dans le didacticiel Hibernate 5 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