GAE数据存储区按索引查询

时间:2012-03-20 14:37:58

标签: java google-app-engine google-cloud-datastore

我在数据存储区中创建了实体。我想使用datstore分配给它们的索引进行查询。 即获得id大于给定数字的可迭代 e.g。

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

我知道我可以通过id返回一个单独的实体 - 但是如何获取列表?

干杯,

2 个答案:

答案 0 :(得分:1)

Iterable<Entity> myEntities = pq.asIterable();
List<Entity> myEntitiesInAList = pq.asList(FetchOptions.Builder.withChunkSize(500));

旁注: “id”不是App Engine自动分配的密钥的名称。我认为您必须使用__key__作为属性名称对其进行查询,并构建一个完整的密钥作为搜索参数,而不仅仅是长id

答案 1 :(得分:0)

如果您的目的是记住中断的地点并继续进行后续查询,请考虑使用query cursor。该页面上的示例可能会为您提供更多选项。