ホームページ  >  記事  >  Java  >  Hibernate 5: 「org.hibernate.MappingException: Unknown Entity」エラーが発生する理由とその修正方法

Hibernate 5: 「org.hibernate.MappingException: Unknown Entity」エラーが発生する理由とその修正方法

Barbara Streisand
Barbara Streisandオリジナル
2024-10-28 16:21:02150ブラウズ

  Hibernate 5: Why am I Getting the

Hibernate 5: 「org.hibernate.MappingException: Unknown Entity」エラーの解決

問題:

Hibernate 5.0 を MySQL と統合しようとしているときに、「org.hibernate.MappingException: Unknownentity」エラーが発生しました。このエラーは Hibernate バージョン 5.0.0 および 5.0.1 では発生しますが、Hibernate 4.3.9 では発生しません。

原因:

この問題は、 SessionFactory が Hibernate 5 で作成される方法。以前のバージョンの Hibernate のように Configuration().buildSessionFactory(sr) メソッドを使用しても、マッピング情報が破棄されるため機能しなくなりました。

解決策:

このエラーを解決するには、次の 2 つの方法があります。

1.簡素化された構成:

hibernate.cfg.xml や hibernate.properties などの標準構成ファイルの場合、ServiceRegistry を使用せずに SessionFactory を作成できます:

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

2。 StandardServiceRegistryBuilder を使用したプロパティのロード:

hibernate.properties 以外のファイルにプロパティがある場合は、StandardServiceRegistryBuilder を使用してそれらをロードできます:

リソースとしてのプロパティのロード:

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

ファイル システム パスからのプロパティのロード:

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

追加メモ:

  • Hibernate 5 チュートリアルには、SessionFactory を作成するための間違ったアプローチが含まれています。これは、Hibernate を適切に構成しないメソッド new Configuration().configure().buildSessionFactory(new StandardServiceRegistryBuilder().build()) を示しています。
  • この問題は、Hibernate バージョン 5.0.0 および 5.0.1 に影響します。 。 Hibernate 5.1 以降の場合、元の構成メソッド Configuration().buildSessionFactory(sr) は期待どおりに機能します。

以上がHibernate 5: 「org.hibernate.MappingException: Unknown Entity」エラーが発生する理由とその修正方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。