8

Objectify on AppEngineを使用して、クエリによって返されたオブジェクトの数を実際にロードせずにカウントする最良の (つまり、最も効率的な) 方法は何でしょうか? すべてのキーを取得して結果をカウントするのが最善だと思います。

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 に答える