2

使用 Objectify 可以查询对象的子对象。一个对象也可以有一个 null 父级。

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

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

此外,使用 null propValue 通过属性创建查询不会返回任何内容。

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

1 回答 1

4

如果将 null 传递给祖先()会从 GAE 代码中引发异常(我相信确实如此),那么是的,这是 appengine 的限制。

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

q = q.filter(...

为了回答如何获取所有具有 null 父级的实体,您可以在键上使用不等式过滤器:

Key<Parent> firstParent = Key.create(Parent.class, 1L);  // first possible parent value
List<Children> children = ofy().query(Children.class).filterKey("<", firstParent).list();
于 2012-12-06T16:55:33.603 回答