0

エンティティの ID のみ、またはエンティティのコレクションの ID (関係など) の読み込みが必要な場合があります。たとえば、エンティティの親とその中にのコレクションがあります

class Parent { 
    private List<Child> children; 
}

したがって、をロードしたい場合、子の状態全体ではなく、場合によっては ID のみをロードする必要があります。私は調査を行い、Named FetchGroup を介して方法を見つけました。つまり、これを実装したい場合は、エンティティ注釈 @FetchGroup(name="id", attributes = {@FetchAttribute(name = "id") ごとに追加する必要があります。 })。もちろん、エンティティのみに適用したい場合に有効です。子の場合、LoadGroup構成する必要があります。

ここでの質問は次のとおりです。エンティティまたはエンティティが要求されたときに、ID のみをロードするための特別な別の戦略はありますか? またはそれを示す方法は?ここでは、ID のみをロードするためだけに、適用したいすべてのエンティティ @FetchGroup による注釈を避けたいと考えています。もちろん、"SELECT ID FROM Parent WHERE ..." や "SELECT child.id FROM Parent INNER JOIN Parent.children WHERE ..." のようなクエリを作成することも、常に定義する必要があるため、ここでは解決策ではありません。関係とエンティティ。

4

1 に答える 1

2

エンティティが 1 つだけ必要な場合は、EntityManager で getReference() を使用できます。

クエリまたはリレーションシップの場合は、EclipseLink でのグループのフェッチが唯一のオプションです。

于 2013-01-30T14:26:53.163 に答える