ホームページ >データベース >mysql チュートリアル >Hibernate 5.0 が「Unknown Entity」MappingException をスローする理由とその修正方法は?

Hibernate 5.0 が「Unknown Entity」MappingException をスローする理由とその修正方法は?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-14 11:10:20728ブラウズ

Why Does Hibernate 5.0 Throw

Hibernate MappingException: Hibernate 5 の不明なエンティティ

Hibernate 5.0 を MySQL と統合するときに、エラー「org.hibernate.MappingException」が発生する場合があります。 : 未知の存在。」この問題はバージョン 5.0.0 および 5.0.1 で発生しますが、Hibernate 4.3.9 では発生しません。

診断

この問題は、Hibernate の不一致が原因で発生します。 5 構成コード。 「HibernateMain.java」クラスの次のコード部分には問題があります:

Configuration configuration = new Configuration();
configuration.configure();

ServiceRegistry sr = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build();

SessionFactory sf = configuration.buildSessionFactory(sr);

Hibernate 5 では、configuration.buildSessionFactory(sr) を使用すると、configuration.configure() 中に取得されたマッピング情報が失われます。

解決策

これを解決するにはこの問題を解決するには、ServiceRegistry を使用せずに次のアプローチを採用します:

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

プロパティの追加読み込みオプション

  • プロパティをリソース:
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 チュートリアル 1.1.6 で紹介されている方法。前述のソリューションを利用して「不明なエンティティ」問題を修正し、Hibernate 5 と MySQL の統合を成功させます。

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

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