Class FetchOptions (2.0.0)

public final class FetchOptions

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));
 

Inheritance

java.lang.Object > FetchOptions

Static Fields

DEFAULT_CHUNK_SIZE (deprecated)

public static final int DEFAULT_CHUNK_SIZE

Deprecated. Instead of using DEFAULT_CHUNK_SIZE, do not specify a chunk size.

Field Value
TypeDescription
int

Methods

chunkSize(int chunkSize)

public FetchOptions chunkSize(int chunkSize)

Sets the chunk size. Please read the class javadoc for an explanation of how chunk size is used.

Parameter
NameDescription
chunkSizeint

The chunk size to set. Must be greater than 0.

Returns
TypeDescription
FetchOptions

this (for chaining)

cursor(Cursor cursor) (deprecated)

public FetchOptions cursor(Cursor cursor)

Deprecated. use #startCursor instead.

Sets the cursor to start the query from.

Parameter
NameDescription
cursorCursor

the cursor to set

Returns
TypeDescription
FetchOptions

this (for chaining)

endCursor(Cursor endCursor)

public FetchOptions endCursor(Cursor endCursor)

Sets the cursor at which to end the query.

Parameter
NameDescription
endCursorCursor

the cursor to set

Returns
TypeDescription
FetchOptions

this (for chaining)

equals(@Nullable Object obj)

public boolean equals(@Nullable Object obj)
Parameter
NameDescription
obj@org.checkerframework.checker.nullness.qual.Nullable java.lang.Object
Returns
TypeDescription
boolean
Overrides

getChunkSize()

public @Nullable Integer getChunkSize()

Returns the chunk size, or null if no chunk size was provided.

Returns
TypeDescription
@org.checkerframework.checker.nullness.qual.Nullable java.lang.Integer

getCursor() (deprecated)

public @Nullable Cursor getCursor()

Deprecated. use #getStartCursor() instead

Returns
TypeDescription
@org.checkerframework.checker.nullness.qual.Nullable com.google.appengine.api.datastore.Cursor

The start cursor, or null if no cursor was provided.

getEndCursor()

public @Nullable Cursor getEndCursor()

Returns the end cursor, or null if no end cursor was provided.

Returns
TypeDescription
@org.checkerframework.checker.nullness.qual.Nullable com.google.appengine.api.datastore.Cursor

getLimit()

public @Nullable Integer getLimit()

Returns the limit, or null if no limit was provided.

Returns
TypeDescription
@org.checkerframework.checker.nullness.qual.Nullable java.lang.Integer

getOffset()

public @Nullable Integer getOffset()

Returns the offset, or null if no offset was provided.

Returns
TypeDescription
@org.checkerframework.checker.nullness.qual.Nullable java.lang.Integer

getPrefetchSize()

public @Nullable Integer getPrefetchSize()

Returns the prefetch size, or null if no prefetch size was provided.

Returns
TypeDescription
@org.checkerframework.checker.nullness.qual.Nullable java.lang.Integer

getStartCursor()

public @Nullable Cursor getStartCursor()

Returns the start cursor, or null if no start cursor was provided.

Returns
TypeDescription
@org.checkerframework.checker.nullness.qual.Nullable com.google.appengine.api.datastore.Cursor

hashCode()

public int hashCode()
Returns
TypeDescription
int
Overrides

limit(int limit)

public FetchOptions limit(int limit)

Sets the limit. Please read the class javadoc for an explanation of how limit is used.

Parameter
NameDescription
limitint

The limit to set. Must be non-negative.

Returns
TypeDescription
FetchOptions

this (for chaining)

offset(int offset)

public FetchOptions offset(int offset)

Sets the offset. Please read the class javadoc for an explanation of how offset is used.

Parameter
NameDescription
offsetint

The offset to set. Must be 0 or greater.

Returns
TypeDescription
FetchOptions

this (for chaining)

prefetchSize(int prefetchSize)

public FetchOptions prefetchSize(int prefetchSize)

Sets the number of entities to prefetch.

Parameter
NameDescription
prefetchSizeint

The prefetch size to set. Must be >= 0.

Returns
TypeDescription
FetchOptions

this (for chaining)

startCursor(Cursor startCursor)

public FetchOptions startCursor(Cursor startCursor)

Sets the cursor at which to start the query.

Parameter
NameDescription
startCursorCursor

the cursor to set

Returns
TypeDescription
FetchOptions

this (for chaining)

toString()

public String toString()
Returns
TypeDescription
String
Overrides