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
Mary-Kate Olsenoriginal
2024-10-29 16:35:021093parcourir

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() );

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();
  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);  

    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);

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!

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