FetchOptions (Google App Engine API for Java)

com.google.appengine.api.datastore

Class FetchOptions

  • java.lang.Object
    • com.google.appengine.api.datastore.FetchOptions


  • public final class FetchOptions
    extends java.lang.Object
    Describes the limit, offset, and chunk size to be applied when executing a PreparedQuery.

    limit is the maximum number of results the query will return.

    offset is the number of results to skip before returning any results. Results that are skipped due to offset do not count against limit.
    Note: Using offset still retrieves skipped entities internally. This affects the latency of the query, and your application is billed for the operations required to retrieve them. Using cursors lets you avoid these costs.

    startCursor and endCursor are previously generated cursors that point to locations in a result set. If specified queries will start and end at these locations.

    prefetchSize is the number of results retrieved on the first call to the datastore.

    chunkSize determines the internal chunking strategy of the Iterator returned by PreparedQuery.asIterator(FetchOptions) and the Iterable returned by PreparedQuery.asIterable(FetchOptions).

    Note that unlike limit, offset and cursor, prefetchSize and chunkSize have no impact on the result of the PreparedQuery, but rather only the performance of the PreparedQuery.

    Notes on usage:
    The recommended way to instantiate a FetchOptions object is to import FetchOptions and invoke a static creation method followed by an instance mutator (if needed):

     import com.google.appengine.api.datastore.FetchOptions;
    
     Cursor cursor = ...
    
     ...
    
     // limit 10
     datastoreService.prepare(query).asList(FetchOptions.Builder.withLimit(10));
    
     // limit 10, start cursor
     datastoreService.prepare(query).asList(FetchOptions.Builder.withLimit(10).startCursor(cursor));
     

    • Field Detail

      • DEFAULT_CHUNK_SIZE

        @Deprecated
        public static final int DEFAULT_CHUNK_SIZE
        Deprecated. Instead of using DEFAULT_CHUNK_SIZE, do not specify a chunk size.
        See Also:
        Constant Field Values
    • Method Detail

      • limit

        public FetchOptions limit(int limit)
        Sets the limit. Please read the class javadoc for an explanation of how limit is used.
        Parameters:
        limit - The limit to set. Must be non-negative.
        Returns:
        this (for chaining)
      • offset

        public FetchOptions offset(int offset)
        Sets the offset. Please read the class javadoc for an explanation of how offset is used.
        Parameters:
        offset - The offset to set. Must be 0 or greater.
        Returns:
        this (for chaining)
      • chunkSize

        public FetchOptions chunkSize(int chunkSize)
        Sets the chunk size. Please read the class javadoc for an explanation of how chunk size is used.
        Parameters:
        chunkSize - The chunk size to set. Must be greater than 0.
        Returns:
        this (for chaining)
      • prefetchSize

        public FetchOptions prefetchSize(int prefetchSize)
        Sets the number of entities to prefetch.
        Parameters:
        prefetchSize - The prefetch size to set. Must be >= 0.
        Returns:
        this (for chaining)
      • cursor

        @Deprecated
        public FetchOptions cursor(Cursor cursor)
        Deprecated. use startCursor instead.
        Sets the cursor to start the query from.
        Parameters:
        cursor - the cursor to set
        Returns:
        this (for chaining)
      • startCursor

        public FetchOptions startCursor(Cursor startCursor)
        Sets the cursor at which to start the query.
        Parameters:
        startCursor - the cursor to set
        Returns:
        this (for chaining)
      • endCursor

        public FetchOptions endCursor(Cursor endCursor)
        Sets the cursor at which to end the query.
        Parameters:
        endCursor - the cursor to set
        Returns:
        this (for chaining)
      • getLimit

        public java.lang.Integer getLimit()
        Returns:
        The limit, or null if no limit was provided.
      • getOffset

        public java.lang.Integer getOffset()
        Returns:
        The offset, or null if no offset was provided.
      • getChunkSize

        public java.lang.Integer getChunkSize()
        Returns:
        The chunk size, or null if no chunk size was provided.
      • getPrefetchSize

        public java.lang.Integer getPrefetchSize()
        Returns:
        The prefetch size, or null if no prefetch size was provided.
      • getCursor

        @Deprecated
        public Cursor getCursor()
        Deprecated. use getStartCursor() instead
        Returns:
        The start cursor, or null if no cursor was provided.
      • getStartCursor

        public Cursor getStartCursor()
        Returns:
        The start cursor, or null if no start cursor was provided.
      • getEndCursor

        public Cursor getEndCursor()
        Returns:
        The end cursor, or null if no end cursor was provided.
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • equals

        public boolean equals(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object