Maison >base de données >tutoriel mysql >Hibernate 5 : Comment résoudre « org.hibernate.MappingException : entité inconnue » ?

Hibernate 5 : Comment résoudre « org.hibernate.MappingException : entité inconnue » ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-23 10:04:43826parcourir

Hibernate 5: How to Solve

Hibernate 5 : Résolution du problème « org.hibernate.MappingException : entité inconnue »

L'exception « org.hibernate.MappingException : entité inconnue » L'erreur couramment rencontrée lors de l'intégration d'Hibernate 5 avec des systèmes de base de données provient d'un problème de configuration. Cela se produit spécifiquement pour les versions Hibernate 5.0.0 et 5.0.1.

Défaut de configuration

Le problème réside dans le processus de création de sessionFactory. L'extrait de code suivant de l'exemple de code fourni illustre le problème :

SessionFactory sf = configuration.buildSessionFactory(sr);

Lors de la tentative de création de la fabrique de sessions à l'aide de la méthode buildSessionFactory lors de la transmission du ServiceRegistry, Hibernate 5 perd la trace des informations de mappage précédemment chargées via la méthode configure.

Solution

Pour rectifier ce problème, des approches alternatives pour créer la fabrique de sessions peuvent être utilisées, en fonction de la configuration utilisée.

Chargement des propriétés

Pour les fichiers de configuration standard (hibernate.cfg. xml et hibernate.properties), la fabrique de sessions peut être créée sans utiliser ServiceRegistry comme indiqué ci-dessous :

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

Alternativement, si les propriétés sont stockées dans un fichier autre que hibernate.properties, elles peuvent être chargées à l'aide de StandardServiceRegistryBuilder :

ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder()
    .configure()
    .loadProperties("hibernate-h2.properties")
    .build();
SessionFactory sf = new Configuration().buildSessionFactory(serviceRegistry);

De même, les propriétés peuvent également être chargées à partir d'un chemin spécifique dans le système de fichiers :

File propertiesPath = new File("some_path");
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder()
    .configure()
    .loadProperties(propertiesPath)
    .build();
SessionFactory sf = new Configuration().buildSessionFactory(serviceRegistry);

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