2012-03-20 143 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。該頁面上的示例可能會提供一些其他選項。