我的数据存储种类已编入5列。
当我使用java API查询具有3个索引过滤器的Kind时:
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());
使用:
检索 runQueryResponse.getBatch().getEntityResultsList();
方法只返回1-2条记录,但从UI查询时,同一查询提供的记录超过1000条。
使用的依赖:
<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>
我们如何解决这个问题?
答案 0 :(得分:0)
通过添加数据存储API的最新版本依赖性解决(3月5日和18日)
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-datastore</artifactId>
<version>1.14.0</version>
</dependency>
并使用它的方法创建GQLQuery对象
GqlQuery<Entity> gqlQuery = Query.newGqlQueryBuilder(Query.ResultType.ENTITY, query)
.setNamespace("nameSpace").setAllowLiteral(true).build();
将其传递给
datastore.run(gqlQuery)