0

所有関係に使用されるフェッチ サイズを制御する方法はありますか?

例 :

@PersistenceCapable
public class Employee {

  /** The contact info sets. */
  @Persistent(defaultFetchGroup = "true")
  @Element(dependent = "true")
  private Collection<ContactInfo> contactInfoSets;

  /** The key. */
  @PrimaryKey
  @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
  private Key key;

  public Collection<ContactInfo> getContactInfo() {
    return contactInfoSets;
  }

}

@PersistenceCapable
public class ContactInfo {

  /** The key. */
  @PrimaryKey
  @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
  private Key key;

}

上記の例では、次のようにします。

Employee e = pm.getObjectById(Employee.class, "1");
e.getContactInfoSets();

所有するすべての連絡先を 20 のグループで取得します。単一のクエリですべての連絡先を取得するように jdo に指示するにはどうすればよいですか?

PS:pm.getFetchPlan().setFetchSize(FetchPlan.FETCH_SIZE_GREEDY);成功せずに設定しようとしました。

4

1 に答える 1

0

FetchPlan.setFetchSize は明らかにクエリで使用するためのものであり、それ以外のものはありません (仕様に従って)。GAE JDO プラグインの v2 を使用すると、DB への追加の呼び出しなしですべての関係オブジェクトをロードする必要があります (関連オブジェクトの ID は所有オブジェクトに格納されるため)。ログは、どのデータストア呼び出しが行われたかを示します

于 2012-07-27T17:23:12.710 に答える