ホームページ  >  記事  >  Java  >  MySQL との統合時に Hibernate 5 で「MappingException: Unknown Entity」を修正するにはどうすればよいですか?

MySQL との統合時に Hibernate 5 で「MappingException: Unknown Entity」を修正するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-31 02:50:31740ブラウズ

How to Fix

Hibernate 5: MappingException: Unknown Entity

Hibernate 5 では、org.hibernate.MappingException: Unknown entity エラーが発生することがあります。 MySQL と統合します。この問題は Hibernate のバージョン 5.0.0 および 5.0.1 に固有であり、後続のバージョンでは解決されています。

原因

このエラーは Hibernate 5 の変更に起因します。行動。以前のバージョンでは、ServiceRegistry を構築した後でも、構成情報は Configuration 内に保持されていました。ただし、Hibernate 5 では、configuration.buildSessionFactory(sr) が呼び出されるときにこの情報が失われます。

修复

1。標準設定ファイル:

標準の hibernate.cfg.xml および hibernate.properties ファイルを使用する場合は、セッション ファクトリを直接作成します:

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

2.プロパティの読み込み:

プロパティが別のファイルに保存されている場合は、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>

3. Fluent Hibernate ユーティリティの使用:

このアプローチを使用した完全な例については、GitHub の fluent-hibernate-mysql プロジェクトを参照してください。

4.不適切な Hibernate 5 チュートリアルの推奨事項の回避:

Hibernate 5 チュートリアルで提供される誤ったコード スニペット:

<code class="java">return new Configuration().configure().buildSessionFactory(
                new StandardServiceRegistryBuilder().build() );</code>

は適切な構成を実行しないため、回避する必要があります。

以上がMySQL との統合時に Hibernate 5 で「MappingException: Unknown Entity」を修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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