ホームページ >データベース >mysql チュートリアル >Hibernate 5: 「org.hibernate.MappingException: 不明なエンティティ」を解決する方法?

Hibernate 5: 「org.hibernate.MappingException: 不明なエンティティ」を解決する方法?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-23 10:04:43849ブラウズ

Hibernate 5: How to Solve

Hibernate 5: 「org.hibernate.MappingException: 不明なエンティティ」の問題の解決

「org.hibernate.MappingException: 不明なエンティティ」 Hibernate 5 をデータベース システムと統合するときによく発生するエラーは、構成の問題が原因です。これは、特に Hibernate バージョン 5.0.0 および 5.0.1 で発生します。

構成の欠陥

問題は sessionFactory の作成プロセス内にあります。提供されているサンプル コードの次のコード スニペットは、この問題を示しています。

SessionFactory sf = configuration.buildSessionFactory(sr);

ServiceRegistry を渡すときに buildSessionFactory メソッドを使用してセッション ファクトリを構築しようとすると、Hibernate 5 は以前にロードされたマッピング情報を追跡できなくなります。構成

解決策

この問題を修正するには、使用されている構成に応じて、セッション ファクトリを作成するための代替アプローチを使用できます。

プロパティの読み込み

標準設定ファイルの場合(hibernate.cfg.xml および hibernate.properties)、以下に示すように、ServiceRegistry を利用せずにセッション ファクトリを作成できます。

SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();

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

ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder()
    .configure()
    .loadProperties("hibernate-h2.properties")
    .build();
SessionFactory sf = new Configuration().buildSessionFactory(serviceRegistry);

同様に、プロパティも次のとおりです。ファイル システム内の特定のパスからロードすることもできます:

File propertiesPath = new File("some_path");
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder()
    .configure()
    .loadProperties(propertiesPath)
    .build();
SessionFactory sf = new Configuration().buildSessionFactory(serviceRegistry);

以上がHibernate 5: 「org.hibernate.MappingException: 不明なエンティティ」を解決する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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