Hibernate 5: Begegnung mit „org.hibernate.MappingException: Unbekannte Entität“ in der Hibernate-MySQL-Integration
Beim Versuch, Hibernate 5.0 zu integrieren Wenn Benutzer eine MySQL-Datenbank verwenden, wird möglicherweise die Fehlermeldung „org.hibernate.MappingException: Unbekannte Entität“ angezeigt. Dieses Problem betrifft hauptsächlich die Hibernate-Versionen 5.0.0 und 5.0.1, während frühere Versionen wie 4.3.9 ordnungsgemäß funktionieren.
Um dieses Problem zu beheben, ist es wichtig, die in Hibernate 5 eingeführten Änderungen zu verstehen. In Versionen 4 und früher verließ sich Hibernate stark auf StandardServiceRegistryBuilder. In Hibernate 5 wurde jedoch der Konfigurationsprozess geändert.
Falsche Konfigurationspraxis:
Der folgende Code funktioniert in Hibernate 4.3.5, schlägt jedoch in Hibernate fehl 5 veranschaulicht den falschen Konfigurationsansatz:
Configuration configuration = new Configuration(); configuration.configure(); ServiceRegistry sr = new StandardServiceRegistryBuilder().applySettings( configuration.getProperties()).build(); SessionFactory sf = configuration.buildSessionFactory(sr);
In Hibernate 5 führt diese Methode dazu, dass Informationen über Entitätszuordnungen während der Konfiguration verloren gehen.buildSessionFactory(sr).
Lösung:
Es gibt zwei mögliche Lösungen für dieses Problem:
1. Standardkonfigurationsdateien (hibernate.cfg.xml und hibernate.properties):
Für Standardkonfigurationsdateien verwenden Sie diesen einfachen Ansatz zum Erstellen der Sitzungsfabrik:
SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
2. Eigenschaften aus externen Quellen laden:
Wenn Sie Eigenschaften an einem anderen Ort als hibernate.properties gespeichert haben, gehen Sie folgendermaßen vor:
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder(). configure().loadProperties("hibernate-h2.properties").build(); SessionFactory sf = new Configuration().buildSessionFactory(serviceRegistry);
File propertiesPath = new File("some_path"); ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder(). configure().loadProperties(propertiesPath).build(); SessionFactory sf = new Configuration().buildSessionFactory(serviceRegistry);
Es ist wichtig Bitte beachten Sie, dass das im Hibernate 5-Tutorial (1.1.6. Startup und Helfer) bereitgestellte Beispiel falsch ist und keine ordnungsgemäße Konfiguration durchführt. Die richtige Methode ist oben angegeben.
Durch die Implementierung dieser Lösungen können Benutzer Hibernate 5 effektiv in MySQL integrieren und den Fehler „Unbekannte Entität“ beheben.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich bei der Hibernate 5.0-Integration mit MySQL den Fehler „org.hibernate.MappingException: Unbekannte Entität“?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!