0

使用:Hibernate 4

FetchType.Eagerマッピングがある親子関係では、Hibernateがいつでも親エンティティをロードし、EntityManager.findが子に対して実行されることに気付きました。これは少しもったいないようです。親の「舞台裏」でのロードにより、永続コンテキストに追加のSELECTと追加のオブジェクトが生成されます。また、子を削除するときに、アプリが親子の関連付けに対処するように強制します

なぜHibernateはこのように動作するのですか?これはJPA仕様で義務付けられていますか?

4

1 に答える 1

0

これは、エンティティがロードされるときに、熱心なフェッチ戦略を持つ永続属性をフェッチする必要があるという仕様に基づいています。

FetchType.EAGERを持つすべての属性(明示的に指定されているかデフォルトであるかを問わず)(リレーションシップおよびその他のコレクション値の属性を含む)がデータベースからロードされているか、アプリケーションによって割り当てられている場合、エンティティはロードされていると見なされます。FetchType.LAZYの属性は、ロードされている場合とされていない場合があります。

于 2012-06-17T14:51:11.727 に答える