Heim  >  Artikel  >  Java  >  Hibernate 5: Warum erhalte ich den Fehler „org.hibernate.MappingException: Unknown Entity“ und wie behebe ich ihn?

Hibernate 5: Warum erhalte ich den Fehler „org.hibernate.MappingException: Unknown Entity“ und wie behebe ich ihn?

Barbara Streisand
Barbara StreisandOriginal
2024-10-28 16:21:02143Durchsuche

  Hibernate 5: Why am I Getting the

Hibernate 5: Fehler „org.hibernate.MappingException: Unknown Entity“ wird behoben

Problem:

Beim Versuch, Hibernate 5.0 mit MySQL zu integrieren, ist der Fehler „org.hibernate.MappingException: Unbekannte Entität“ aufgetreten. Dieser Fehler tritt bei den Hibernate-Versionen 5.0.0 und 5.0.1 auf, jedoch nicht bei Hibernate 4.3.9.

Ursache:

Das Problem tritt aufgrund einer Änderung in auf So wird SessionFactory mit Hibernate 5 erstellt. Die Verwendung der Methode Configuration().buildSessionFactory(sr) wie in früheren Versionen von Hibernate funktioniert nicht mehr, da sie Zuordnungsinformationen verwirft.

Lösung:

Um diesen Fehler zu beheben, gibt es zwei Ansätze:

1. Vereinfachte Konfiguration:

Für Standardkonfigurationsdateien wie hibernate.cfg.xml und hibernate.properties können Sie SessionFactory erstellen, ohne ServiceRegistry zu verwenden:

<code class="java">SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();</code>

2. Verwenden von StandardServiceRegistryBuilder zum Laden von Eigenschaften:

Wenn Sie Eigenschaften in anderen Dateien als hibernate.properties haben, können Sie StandardServiceRegistryBuilder verwenden, um diese zu laden:

Eigenschaften als Ressource laden:

<code class="java">ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().
    configure().loadProperties("hibernate-h2.properties").build();
SessionFactory sf = new Configuration().buildSessionFactory(serviceRegistry);</code>

Eigenschaften aus einem Dateisystempfad laden:

<code class="java">File propertiesPath = new File("some_path");
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().
    configure().loadProperties(propertiesPath).build();
SessionFactory sf = new Configuration().buildSessionFactory(serviceRegistry);</code>

Zusätzliche Hinweise:

  • Das Hibernate 5-Tutorial enthält einen falschen Ansatz zum Erstellen von SessionFactory. Es demonstriert die Methode new Configuration().configure().buildSessionFactory(new StandardServiceRegistryBuilder().build()), die Hibernate nicht ordnungsgemäß konfiguriert.
  • Dieses Problem betrifft die Hibernate-Versionen 5.0.0 und 5.0.1 . Für Hibernate 5.1 und höher funktioniert die ursprüngliche Konfigurationsmethode Configuration().buildSessionFactory(sr) wie erwartet.

Das obige ist der detaillierte Inhalt vonHibernate 5: Warum erhalte ich den Fehler „org.hibernate.MappingException: Unknown Entity“ und wie behebe ich ihn?. 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