2012-03-20 99 views
1

我已经在数据存储中创建了实体。我想使用由datstore分配给它们的索引进行查询。 即得到可迭代的返回,其中id大于给定的数字 例如,按索引查询GAE数据存储

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

我知道我可以通过id找回个人实体 - 但是如何获得列表?

干杯,

+0

你为什么要这么做?请记住,ID不是按顺序分配的,因此按顺序对它们进行迭代不太可能有用。 – 2012-03-21 07:13:04

回答

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

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

0

如果您的意图是记住您从哪里离开并继续进行后续查询,请考虑使用query cursor。该页面上的示例可能会提供一些其他选项。