Class Query<V>

java.lang.Object
com.google.cloud.datastore.Query<V>
Type Parameters:
V - the type of the values returned by this query.
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
AggregationQuery, GqlQuery, StructuredQuery

public abstract class Query<V> extends Object implements Serializable
A Google Cloud Datastore query. For usage examples see GqlQuery, StructuredQuery and AggregationQuery.

Note that queries require proper indexing. See Cloud Datastore Index Configuration for help configuring indexes.

See Also:
  • Method Details

    • getNamespace

      public String getNamespace()
    • newGqlQueryBuilder

      public static GqlQuery.Builder<?> newGqlQueryBuilder(String gql)
      Returns a new GqlQuery builder.

      Example of creating and running a GQL query.

      
       String kind = "my_kind";
       String gqlQuery = "select * from " + kind;
       Query<?> query = Query.newGqlQueryBuilder(gqlQuery).build();
       QueryResults<?> results = datastore.run(query);
       // Use results
       
      See Also:
    • newGqlQueryBuilder

      public static <V> GqlQuery.Builder<V> newGqlQueryBuilder(Query.ResultType<V> resultType, String gql)
      Returns a new GqlQuery builder.

      Example of creating and running a typed GQL query.

      
       String kind = "my_kind";
       String gqlQuery = "select * from " + kind;
       Query<Entity> query = Query.newGqlQueryBuilder(Query.ResultType.ENTITY, gqlQuery).build();
       QueryResults<Entity> results = datastore.run(query);
       // Use results
       
      See Also:
    • newEntityQueryBuilder

      public static EntityQuery.Builder newEntityQueryBuilder()
      Returns a new StructuredQuery builder for full (complete entities) queries.

      Example of creating and running an entity query.

      
       String kind = "my_kind";
       Query<Entity> query = Query.newEntityQueryBuilder().setKind(kind).build();
       QueryResults<Entity> results = datastore.run(query);
       // Use results
       
    • newKeyQueryBuilder

      public static KeyQuery.Builder newKeyQueryBuilder()
      Returns a new StructuredQuery builder for key only queries.

      Example of creating and running a key query.

      
       String kind = "my_kind";
       Query<Key> query = Query.newKeyQueryBuilder().setKind(kind).build();
       QueryResults<Key> results = datastore.run(query);
       // Use results
       
    • newProjectionEntityQueryBuilder

      public static ProjectionEntityQuery.Builder newProjectionEntityQueryBuilder()
      Returns a new StructuredQuery builder for projection queries.

      Example of creating and running a projection entity query.

      
       String kind = "my_kind";
       String property = "my_property";
       Query<ProjectionEntity> query = Query.newProjectionEntityQueryBuilder()
           .setKind(kind)
           .addProjection(property)
           .build();
       QueryResults<ProjectionEntity> results = datastore.run(query);
       // Use results
       
    • newAggregationQueryBuilder

      public static AggregationQuery.Builder newAggregationQueryBuilder()
      Returns a new AggregationQuery builder.

      Example of creating and running an AggregationQuery.

      StructuredQuery example:

      
       EntityQuery selectAllQuery = Query.newEntityQueryBuilder()
          .setKind("Task")
          .build();
       AggregationQuery aggregationQuery = Query.newAggregationQueryBuilder()
          .addAggregation(count().as("total_count"))
          .over(selectAllQuery)
          .build();
       AggregationResults aggregationResults = datastore.runAggregation(aggregationQuery);
       // Use aggregationResults
       

      GqlQuery example:

      
       GqlQuery<?> selectAllGqlQuery = Query.newGqlQueryBuilder(
               "AGGREGATE COUNT(*) AS total_count OVER(SELECT * FROM Task)"
           )
           .setAllowLiteral(true)
           .build();
       AggregationQuery aggregationQuery = Query.newAggregationQueryBuilder()
           .over(selectAllGqlQuery)
           .build();
       AggregationResults aggregationResults = datastore.runAggregation(aggregationQuery);
       // Use aggregationResults