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.
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.
Pour résoudre le problème, vous pouvez charger correctement les mappages d'entités en utilisant l'une des méthodes suivantes :
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();
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.
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);
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!