8

使用AppEngine上的Objectify计算查询返回的对象数量的最佳(即最有效)方法是什么,实际上不加载它们?我猜最好的方法是获取所有密钥并计算结果:

public int getEntityCount(Long v) {
    Objectify ofy = ObjectifyService.begin();
    Iterable<Key<MyEntity>> list = ofy.query(MyEntity.class)
            .filter("field", v).fetchKeys();
    int n = 0;
    for (Key<MyEntity> e : list)
        n++;
    return n;
}

似乎没有任何专门的方法可以做到这一点。有任何想法吗?

4

1 回答 1

15

找到了:

int n = Iterable<Key<MyEntity>> list = ofy().query(MyEntity.class)
      .filter("field", v).count();

就这么简单,但很有效,因为它检索了所有的键。最好设计您的 UI 以处理未知数量的结果(例如 Google,它提供了页数但不提供实际数量的线索)

于 2011-02-18T17:55:29.527 回答