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 the #getResultClass value.
Results are loaded lazily in batches, where batch size is set by Cloud Datastore. As a result, it
is possible to get a DatastoreException
upon hasNext or next calls.
Implements
Iterator<V>Type Parameter
Name | Description |
V |
Methods
getCursorAfter()
public abstract Cursor getCursorAfter()
Returns the Cursor for the point after the value returned in the last #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
Type | Description |
Cursor |
getMoreResults()
public abstract QueryResultBatch.MoreResultsType getMoreResults()
Returns MoreResults state of the query after the current batch.
Type | Description |
QueryResultBatch.MoreResultsType |
getResultClass()
public abstract Class<?> getResultClass()
Returns the actual class of the result's values.
Type | Description |
Class<?> |
getSkippedResults()
public abstract 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();
}
Type | Description |
int |