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

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

Barbara Streisand
リリース: 2024-12-06 20:18:12
オリジナル
700 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート