Interface QueryResults<V> (2.19.0)

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

NameDescription
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
 
Returns
TypeDescription
Cursor

getExplainMetrics()

public default Optional<ExplainMetrics> getExplainMetrics()
Returns
TypeDescription
Optional<ExplainMetrics>

getMoreResults()

public abstract QueryResultBatch.MoreResultsType getMoreResults()

Returns MoreResults state of the query after the current batch.

Returns
TypeDescription
QueryResultBatch.MoreResultsType

getResultClass()

public abstract Class<?> getResultClass()

Returns the actual class of the result's values.

Returns
TypeDescription
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();
 }
 
Returns
TypeDescription
int