ホームページ >データベース >mysql チュートリアル >Hibernate 5: 「org.hibernate.MappingException: 不明なエンティティ」を解決する方法?
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 サイトの他の関連記事を参照してください。