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 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.
  • Method Details

    • 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 last Iterator.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

      Returns MoreResults state of the query after the current batch.