Class GqlQuery<V>

java.lang.Object
com.google.cloud.datastore.Query<V>
com.google.cloud.datastore.GqlQuery<V>
Type Parameters:
V - the type of the result values this query will produce
All Implemented Interfaces:
RecordQuery<V>, Serializable

public final class GqlQuery<V> extends Query<V> implements RecordQuery<V>
A Google Cloud Datastore GQL query.

A usage example:

When the type of the results is known the preferred usage would be:


 Query<Entity> query =
     Query.newGqlQueryBuilder(Query.ResultType.ENTITY, "select * from kind").build();
 QueryResults<Entity> results = datastore.run(query);
 while (results.hasNext()) {
   Entity entity = results.next();
   ...
 }
 

When the type of the results is unknown you can use this approach:


 Query<?> query = Query.newGqlQueryBuilder("select __key__ from kind").build();
 QueryResults<?> results = datastore.run(query);
 if (Key.class.isAssignableFrom(results.getResultClass())) {
   QueryResults<Key> keys = (QueryResults<Key>) results;
   while (keys.hasNext()) {
     Key key = keys.next();
     ...
   }
 }
 
See Also:
  • Method Details

    • getQueryString

      public String getQueryString()
      Returns the query string for this query.
    • allowLiteral

      public boolean allowLiteral()
      Returns whether the query string can contain literals. When false, the query string must not contain any literals and instead must bind all values.
    • getNamedBindings

      public Map<String,Object> getNamedBindings()
      Returns an immutable map of named bindings.
    • getNamedBindingsMap

      @InternalApi public Map<String,com.google.cloud.datastore.GqlQuery.Binding> getNamedBindingsMap()
    • getPositionalBindingsMap

      @InternalApi public List<com.google.cloud.datastore.GqlQuery.Binding> getPositionalBindingsMap()
    • getNumberArgs

      public List<Object> getNumberArgs()
      Returns an immutable list of positional bindings (using original order).
    • getType

      public Query.ResultType<V> getType()
      Specified by:
      getType in interface RecordQuery<V>
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • hashCode

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

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • populatePb

      @InternalApi public void populatePb(RunQueryRequest.Builder requestPb)
      Specified by:
      populatePb in interface RecordQuery<V>
    • nextQuery

      @InternalApi public RecordQuery<V> nextQuery(RunQueryResponse responsePb)
      Specified by:
      nextQuery in interface RecordQuery<V>