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

Hibernate 5: 「org.hibernate.MappingException: 不明なエンティティ」エラーを修正する方法?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-06 20:18:12760ブラウズ

Hibernate 5: How to Fix the

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

はじめに

Hibernate 5.0 をMySQL では、開発者は「org.hibernate.MappingException: Unknownentity」という複雑なエラー メッセージに遭遇することがよくあります。この問題は、Hibernate 4.3.9 と 5.0.0 の間の設定の不一致に起因します。

根本原因

Hibernate 5 では、メソッドconfiguration.buildSessionFactory(sr)構成により、configuration.configure() によって構成されたエンティティ マッピングに関する情報が失われます。その結果、Hibernate は永続クラスを認識できません。

解決策

この問題を修正するには、セッション ファクトリの作成を担当するコードを変更します。

// Incorrect approach (for Hibernate 5)
SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory(sr);

// Correct approach
SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();

追加オプション

1.プロパティの読み込み

プロパティがデフォルト以外の場所に保存されている場合は、StandardServiceRegistryBuilder を利用してプロパティを読み込みます。

ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder()
    .configure()
    .loadProperties("hibernate-<database>.properties")
    .build();
SessionFactory sessionFactory = new Configuration().buildSessionFactory(serviceRegistry);

2. Hibernate 5 チュートリアルの修正

Hibernate 5 チュートリアルのセクション 1.1.6 に誤った例が含まれています:

// Incorrect code from tutorial
return new Configuration().configure().buildSessionFactory(
                new StandardServiceRegistryBuilder().build() );

この誤ったコードを正しいアプローチに置き換えてください:

// Correct code
return new Configuration().configure().buildSessionFactory();

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

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