| Oracle® Fusion Middleware Oracle TopLink Java Persistence API (JPA)拡張機能リファレンス 12c (12.1.2) E48005-01 |
|
![]() 前 |
![]() 次 |
@FetchAttributeを使用して、フェッチ・グループ内のパフォーマンスを向上させます。オブジェクトの属性のグループをオンデマンドでロードできるようにします。その結果、明示的なアクセス・コールが発生するまで、属性のデータをデータソースからロードする必要がなくなります。
これにより、ユーザーが一部の属性のみを必要とする場合に、オブジェクトの属性のすべてのデータをロードする必要がなくなります。
注釈要素
表2-21は、この注釈の要素を示しています。
使用方法
EclipseLinkには、次の2つのタイプのフェッチ・グループがあります。
エンティティまたはMappedSuperclassレベルの事前定義済フェッチ・グループ
問合せレベルの動的(ユースケース)フェッチ・グループ
フェッチ・グループを使用する場合、広範囲にわたってユースケースを確認する必要があります。多くの事例では、追加のラウンドトリップにより、遅延したロードによって得られるメリットが相殺されます。
例
例2-42に、@FetchGroup注釈内で@FetchAttributeを使用する方法を示します。
例2-42 @FetchAttribute注釈の使用
@Entity
@FetchGroup(name="basic-fetch-group", attributes={
@FetchAttribute(name="id"),
@FetchAttribute(name="name"),
@FetchAttribute(name="address")})
public class Person {
@Id
private int id;
private String name;
@OneToOne(fetch=LAZY)
private Address address;
@ManyToOne(fetch=EAGER)
private ContactInfo contactInfo;
例2-43 <fetch-group> XMLの使用
<fetch-group name="basic-fetch-group">
<attribute name="id"/>
<attribute name="name"/>
<attribute name="address"/>
</fetch-group>
関連項目
詳細は、次を参照してください。
『Oracle TopLinkの理解』