Hibernate 5: 「org.hibernate.MappingException: Unknownentity」エラーの解決
Hibernate 5.0 を MySQL と統合するときに、次のような問題が発生する可能性があります。エラー「org.hibernate.MappingException: 不明なエンティティ。」この問題は、特に Hibernate バージョン 5.0.0 および 5.0.1 で発生しますが、Hibernate 4.3.9 はこの問題なく動作します。
エラーの原因
Hibernate 5 、Hibernate が設定を読み取る方法の変更により、このエラーが発生しました。具体的には、StandardServiceRegistryBuilder を使用して SessionFactory を構築するときに、hibernate.cfg.xml から読み取られた構成情報が適切に適用されません。
解決策
このエラーを解決するには、次の方法があります。
基本構成メソッドの使用
より単純な解決策の場合は、StandardServiceRegistryBuilder の使用を避け、代わりに構成オブジェクトからセッション ファクトリを直接作成します。 :
<code class="java">SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();</code>
プロパティのロード
hibernate.properties の外部で追加のプロパティが定義されている場合は、StandardServiceRegistryBuilder を使用してそれらをロードできます:
<code class="java">ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder() .configure() .loadProperties("hibernate-h2.properties") .build(); SessionFactory sf = new Configuration().buildSessionFactory(serviceRegistry);</code>
Fluent-Hibernate の使用
GitHub プロジェクト「fluent-hibernate-mysql」で実証されているように、より便利なアプローチとして Fluent-Hibernate ライブラリを利用することもできます。
追加の考慮事項
セクション 1.1.6 の Hibernate 5 チュートリアルの例は間違っていることに注意してください。 SessionFactory の構築時に適切な構成のロードに失敗し、マッピングの問題が発生します。
以上がMySQL を使用した Hibernate 5 での「org.hibernate.MappingException: 不明なエンティティ」エラーを修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。