My datastore Kind is indexed on 5 columns.
When I query the Kind with 3 indexed filters using java API's :
RunQueryRequest.Builder request = RunQueryRequest.newBuilder();
request.setPartitionId(partitionId);
GqlQuery gqlQuery= GqlQuery.newBuilder()
.setQueryString(query)
.setAllowLiterals(true)
.build();
request.setGqlQuery(gqlQuery);
return datastore.runQuery(request.build());
And retrieved using :
runQueryResponse.getBatch().getEntityResultsList();
method returns only 1-2 records but when queried from UI same query gives more than 1000 records.
depedencies used :
<dependency>
<groupId>com.google.cloud.datastore</groupId>
<artifactId>datastore-v1-protos</artifactId>
<version>1.5.0</version>
</dependency>
<dependency>
<groupId>com.google.cloud.datastore</groupId>
<artifactId>datastore-v1-proto-client</artifactId>
<version>1.6.0</version>
</dependency>
How can we resolve this issue?
resolved by adding datastore API's latest version dependency (Mar 5'18)
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-datastore</artifactId>
<version>1.14.0</version>
</dependency>
And used it's methods to create GQLQuery object
GqlQuery<Entity> gqlQuery = Query.newGqlQueryBuilder(Query.ResultType.ENTITY, query)
.setNamespace("nameSpace").setAllowLiteral(true).build();
to pass it to
datastore.run(gqlQuery)
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.