Class 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:
    Serialized Form
    • Method Detail

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