GAE Datastore запрашивает по индексу - PullRequest
1 голос
/ 20 марта 2012

Я создал объекты в хранилище данных.Я хочу использовать индекс, назначенный им хранилищем данных для запросов.то есть получить итеративное возвращение, где идентификатор больше заданного числа, например

Query q = new Query("MyEntity");
q.addFilter("id",Query.FilterOperator.GREATER_THAN_OR_EQUAL, startId);
PreparedQuery pq = datastore.prepare(q);

Я знаю, что могу вернуть отдельную сущность через идентификатор - но как получить список?

Cheers,

Ответы [ 2 ]

1 голос
/ 20 марта 2012
Iterable<Entity> myEntities = pq.asIterable();
List<Entity> myEntitiesInAList = pq.asList(FetchOptions.Builder.withChunkSize(500));

Примечание: «id» - это не имя ключа, автоматически назначаемого App Engine. Я думаю, что вы должны использовать __key__ в качестве имени свойства для выполнения запросов к нему и создать полный ключ в качестве параметра поиска, а не только длинный id.

0 голосов
/ 21 марта 2012

Если вы хотите запомнить, где вы остановились, и продолжить там в следующем запросе, рассмотрите возможность использования курсора запроса . Пример на этой странице может дать вам дополнительные возможности.

...