X.all()。ancestor(y)によってyのすべての子(間接を含む)を得ることができますが、yの直接の子であるものだけを受け取ります。GAEデータストア(HRD)でエンティティの直接の子を照会するにはどうすればよいですか?
これを行う方法はありますか?
X.all()。ancestor(y)によってyのすべての子(間接を含む)を得ることができますが、yの直接の子であるものだけを受け取ります。GAEデータストア(HRD)でエンティティの直接の子を照会するにはどうすればよいですか?
これを行う方法はありますか?
試してください:あなたがメソッドを使って、その祖先を設定することができますsetAncestor()それは祖先が直接の親であることを保証するものではありませんQuery()データストアの使用
X.all().filter("parent = ", y)
。
直接の子のみを確実にフェッチするためにできることは、比較操作を行うことです。
if(directChildEntity.getKey().getParent().equals(directParentEntity.getKey()))
{
// directChildEntity is a direct child of directParentEntity
}
トリックは、キー間の一段階の階層を媒介することができるので、データストアKey's getParent()方法を使用することです。
あなたはそれが逆転したと思います。私は彼がyの直接の子供たちを照会することを望んでいると思います。私はそれがX.all()。filter( "parent ="、y)であるべきだと思います。 – Albert
@Albertありがとうございます –
これは 'parent'というデータストアプロパティがある場合にのみ機能します。 –