Heim  >  Artikel  >  Java  >  Warum erhalte ich bei der Hibernate 5.0-Integration mit MySQL den Fehler „org.hibernate.MappingException: Unbekannte Entität“?

Warum erhalte ich bei der Hibernate 5.0-Integration mit MySQL den Fehler „org.hibernate.MappingException: Unbekannte Entität“?

DDD
DDDOriginal
2024-11-01 21:13:02489Durchsuche

Why am I getting

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:

  • Eigenschaften als Ressource laden :
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().
    configure().loadProperties("hibernate-h2.properties").build();
SessionFactory sf = new Configuration().buildSessionFactory(serviceRegistry);  
  • Eigenschaften aus einem bestimmten Pfad im Dateisystem laden:
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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn