Package com.google.cloud.datastore
Class StructuredQuery<V>
- java.lang.Object
-
- com.google.cloud.datastore.Query<V>
-
- com.google.cloud.datastore.StructuredQuery<V>
-
- Type Parameters:
V
- the type of the result values this query will produce
- All Implemented Interfaces:
RecordQuery<V>
,Serializable
- Direct Known Subclasses:
EntityQuery
,KeyQuery
,ProjectionEntityQuery
public abstract class StructuredQuery<V> extends Query<V> implements RecordQuery<V>
An implementation of a Google Cloud Datastore Query that can be constructed by providing all the specific query elements.A usage example:
A simple query that returns all entities for a specific kind
Query<Entity> query = Query.newEntityQueryBuilder().setKind(kind).build(); QueryResults<Entity> results = datastore.run(query); while (results.hasNext()) { Entity entity = results.next(); ... }
A simple key-only query of all entities for a specific kind
Query<Key> keyOnlyQuery = Query.newKeyQueryBuilder().setKind(KIND1).build(); QueryResults<Key> results = datastore.run(keyOnlyQuery); ...
A less trivial example of a projection query that returns the first 10 results of "age" and "name" properties (sorted and grouped by "age") with an age greater than 18
Query<ProjectionEntity> query = Query.newProjectionEntityQueryBuilder() .setKind(kind) .setProjection(Projection.property("age"), Projection.first("name")) .setFilter(PropertyFilter.gt("age", 18)) .setGroupBy("age") .setOrderBy(OrderBy.asc("age")) .setLimit(10) .build(); QueryResults<ProjectionEntity> results = datastore.run(query); ...
- See Also:
- Datastore queries, Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
StructuredQuery.Builder<V>
Interface for StructuredQuery builders.static class
StructuredQuery.CompositeFilter
A class representing a filter composed of a combination of other filters.static class
StructuredQuery.Filter
static class
StructuredQuery.OrderBy
static class
StructuredQuery.PropertyFilter
A class representing a filter based on a single property or ancestor.-
Nested classes/interfaces inherited from class com.google.cloud.datastore.Query
Query.ResultType<V>
-
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description boolean
equals(Object obj)
List<String>
getDistinctOn()
Returns the distinct on clause for this query.Cursor
getEndCursor()
Returns the end cursor for this query.StructuredQuery.Filter
getFilter()
Returns the filter for this query.String
getKind()
Returns the kind for this query.Integer
getLimit()
Returns the limit for this query.int
getOffset()
Returns the offset for this query.List<StructuredQuery.OrderBy>
getOrderBy()
Returns the order by clause for this query.List<String>
getProjection()
Returns the projection for this query.Cursor
getStartCursor()
Returns the start cursor for this query.Query.ResultType<V>
getType()
int
hashCode()
StructuredQuery<V>
nextQuery(RunQueryResponse responsePb)
void
populatePb(RunQueryRequest.Builder requestPb)
abstract StructuredQuery.Builder<V>
toBuilder()
String
toString()
-
Methods inherited from class com.google.cloud.datastore.Query
getNamespace, newAggregationQueryBuilder, newEntityQueryBuilder, newGqlQueryBuilder, newGqlQueryBuilder, newKeyQueryBuilder, newProjectionEntityQueryBuilder
-
-
-
-
Method Detail
-
getKind
public String getKind()
Returns the kind for this query.
-
getFilter
public StructuredQuery.Filter getFilter()
Returns the filter for this query.
-
getOrderBy
public List<StructuredQuery.OrderBy> getOrderBy()
Returns the order by clause for this query.
-
getStartCursor
public Cursor getStartCursor()
Returns the start cursor for this query.
-
getEndCursor
public Cursor getEndCursor()
Returns the end cursor for this query.
-
getOffset
public int getOffset()
Returns the offset for this query.
-
getLimit
public Integer getLimit()
Returns the limit for this query.
-
toBuilder
public abstract StructuredQuery.Builder<V> toBuilder()
-
getType
@InternalApi public Query.ResultType<V> getType()
- Specified by:
getType
in interfaceRecordQuery<V>
-
populatePb
@InternalApi public void populatePb(RunQueryRequest.Builder requestPb)
- Specified by:
populatePb
in interfaceRecordQuery<V>
-
nextQuery
@InternalApi public StructuredQuery<V> nextQuery(RunQueryResponse responsePb)
- Specified by:
nextQuery
in interfaceRecordQuery<V>
-
-