列出空父母的孩子?

时间:2012-12-06 14:55:54

标签: google-app-engine objectify

使用Objectify可以查询对象的子节点。对象也可以具有null父级。

Parent parent;
List<Children> children = ofy().query(Children.class).ancestor(parent).list();

我想知道的是,如果我可以查询null父项?所以我想知道所有有空父母的孩子。如果我在上面传递null,我会得到一个异常。

使用null propValue创建属性的查询也不会返回任何内容。

  Query<T> q = ofy().query(clazz);
  q.filter(propName, propValue);
  return q.list();

1 个答案:

答案 0 :(得分:3)

如果将null传入ancestor()会从GAE代码中抛出异常(我相信它会这样做),那么是的,这是appengine的限制。

请注意,Query对象是不可变的,因此在第二个示例中,filter()调用无效。您必须重新分配q变量:

q = q.filter(...

在回答如何使用空父项获取所有实体时,可以使用键上的不等式过滤器来执行此操作:

Key<Parent> firstParent = Key.create(Parent.class, 1L);  // first possible parent value
List<Children> children = ofy().query(Children.class).filterKey("<", firstParent).list();