Maison >base de données >tutoriel mysql >Pourquoi Hibernate 5.0 génère-t-il une exception MappingException « Entité inconnue » et comment puis-je y remédier ?

Pourquoi Hibernate 5.0 génère-t-il une exception MappingException « Entité inconnue » et comment puis-je y remédier ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-14 11:10:20782parcourir

Why Does Hibernate 5.0 Throw

Hibernate MappingException : entité inconnue dans Hibernate 5

Lors de l'intégration d'Hibernate 5.0 avec MySQL, vous pouvez rencontrer l'erreur "org.hibernate.MappingException : Entité inconnue." Ce problème est répandu dans les versions 5.0.0 et 5.0.1, mais pas dans Hibernate 4.3.9.

Diagnostic

Le problème provient d'une incompatibilité dans Hibernate 5 codes de configuration. Le fragment de code suivant de votre classe "HibernateMain.java" pose problème :

Configuration configuration = new Configuration();
configuration.configure();

ServiceRegistry sr = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build();

SessionFactory sf = configuration.buildSessionFactory(sr);

Dans Hibernate 5, l'utilisation de configuration.buildSessionFactory(sr) entraîne une perte des informations de mappage acquises lors de configuration.configure().

Solution

Pour résoudre ce problème, utilisez l'approche suivante sans ServiceRegistry :

SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();

Options de chargement supplémentaires pour les propriétés

  • Chargement des propriétés en tant que ressource :
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().
    configure().loadProperties("hibernate-h2.properties").build();
SessionFactory sf = new Configuration().buildSessionFactory(serviceRegistry);  
  • Chargement des propriétés à partir d'un système de fichiers Chemin :
File propertiesPath = new File("some_path");
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().
    configure().loadProperties(propertiesPath).build();
SessionFactory sf = new Configuration().buildSessionFactory(serviceRegistry);

Conclusion

Évitez d'utiliser la méthode de configuration incorrecte présentée dans le tutoriel Hibernate 5 1.1.6. Utilisez les solutions susmentionnées pour corriger le problème « Entité inconnue » et établir une intégration réussie d'Hibernate 5 avec MySQL.

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