2012-03-20 3 views
1

データストア内にエンティティを作成しました。私はクエリにdatastoreによって割り当てられたインデックスを使用したい。 つまり、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は順番に割り当てられないので、順番に反復することはそれほど有用ではない可能性があることに留意してください。 –

答えて

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

サイドノート: "ID" がApp Engineのことで、自動的に割り当てられたキーの名前ではありません。私はそれにクエリを行うには__key__プロパティ名として使用する必要があると思うだけでなく、長いid検索パラメータとして完全なキーを構築すると思います。

0

これ以降のクエリで途中で中断した箇所を覚えておきたい場合は、query cursorの使用を検討してください。そのページの例では、さらにいくつかのオプションがあります。

関連する問題