Class Cursor

java.lang.Object
com.google.appengine.api.datastore.Cursor
All Implemented Interfaces:
Serializable

public final class Cursor extends Object implements Serializable
A cursor that represents a position in a query.

To resume a DatastoreV3Pb.Query at the position defined by a Cursor, the Cursor must be present in the FetchOptions passed to a PreparedQuery identical to the one it was created from.

Cursors can be retrieved from PreparedQuery.asQueryResult* functions. A typical use case would be:


 Cursor originalCursor = preparedQuery.asQueryResultList(withLimit(20)).getCursor();
 String encodedCursor = original.toWebSafeString();
 
The encoded cursor can then be passed safely in a get or post arg of a web request and on another request the next batch of results can be retrieved with:

 Cursor decodedCursor = Cursor.fromWebSafeString(encodedCursor);
 List<Entity> nextBatch = preparedQuery.asQueryResultList(withLimit(20).cursor(decoded));
 
See Also:
  • Method Details

    • reverse

      @Deprecated public Cursor reverse()
      Deprecated.
      It is no longer necessary to call reverse() on cursors.

      A cursor returned by a query may also be used in the query returned by Query.reverse().

      Returns a cursor identical to this.
    • toWebSafeString

      public String toWebSafeString()
      Encodes the current cursor as a web safe string that can later be decoded by fromWebSafeString(String)
    • fromWebSafeString

      public static Cursor fromWebSafeString(String encodedCursor)
      Decodes the given encoded cursor
      Returns:
      the decoded cursor
      Throws:
      IllegalArgumentException - if the provided string is not a valid encoded cursor
    • equals

      public boolean equals(@Nullable Object obj)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object