Package com.google.cloud.datastore
Interface QueryResults<V>
-
- Type Parameters:
V
- the type of the results value.
- All Superinterfaces:
Iterator<V>
public interface QueryResults<V> extends Iterator<V>
The result of a Google Cloud Datastore query submission. When the result is not typed it is possible to cast it to its appropriate type according to thegetResultClass()
value. Results are loaded lazily in batches, where batch size is set by Cloud Datastore. As a result, it is possible to get aDatastoreException
uponhasNext
ornext
calls.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description Cursor
getCursorAfter()
Returns the Cursor for the point after the value returned in the lastIterator.next()
call.QueryResultBatch.MoreResultsType
getMoreResults()
Returns MoreResults state of the query after the current batch.Class<?>
getResultClass()
Returns the actual class of the result's values.int
getSkippedResults()
Returns the number of results skipped, typically because of an offset.-
Methods inherited from interface java.util.Iterator
forEachRemaining, hasNext, next, remove
-
-
-
-
Method Detail
-
getResultClass
Class<?> getResultClass()
Returns the actual class of the result's values.
-
getCursorAfter
Cursor getCursorAfter()
Returns the Cursor for the point after the value returned in the lastIterator.next()
call. This cursor can be used to issue subsequent queries (with the same constraints) that may return additional results.A simple use case:
Query<Entity> query = Query.newEntityQueryBuilder() .setKind("Person") .setFilter(PropertyFilter.eq("favoriteFood", "pizza")) .build(); QueryResults<Entity> results = datastore.run(query); // Consume some results (using results.next()) and do any other actions as necessary. query = query.toBuilder().setStartCursor(results.getCursorAfter()).build(); results = datastore.run(query); // now we will iterate over all entities not yet consumed
-
getSkippedResults
int getSkippedResults()
Returns the number of results skipped, typically because of an offset.A simple use case to count entities:
Query<Key> query = Query.newKeyQueryBuilder().setOffset(Integer.MAX_VALUE).build(); QueryResults<Key> result = datasore.datastore.run(query); if (!result.hasNext()) { int numberOfEntities = result.getSkippedResults(); }
-
getMoreResults
QueryResultBatch.MoreResultsType getMoreResults()
Returns MoreResults state of the query after the current batch.
-
-