使用com.google.cloud.datastore.DatastoreReader.java
类(v1.3.1)对Google Cloud Datastore执行查询,如何知道何时没有结果?我注意到,即使看起来没有任何结果,我仍然会收回光标。
如果我的查询遗留了值,我是否可以保证获得带有值的迭代器?
如果查询结果集中还剩下足够的元素,我是否可以保证获得使用查询限制指定的元素数量?
QueryResults<Entity> queryResults = null;
do {
final EntityQuery query = newEntityQueryBuilder()
.setKind(ENTITY_KIND)
.setLimit(50)
.setStartCursor((null!=queryResults)?queryResults.getCursorAfter():Cursor.copyFrom(new byte[0]))
.build();
queryResults = datastore.run(query);
queryResults.forEachRemaining(entity -> {
// Some operations
});
} while ( ??? );
答案 0 :(得分:0)
可以使用下面的方法。
Datastore datastore = dataStoreService.getDatastore();
StructuredQuery<Entity> query =
Query.newEntityQueryBuilder().setKind(KIND_NAME).build();
QueryResults<Entity> results = datastore.run(query);
while (results.hasNext()) {
Entity entity = results.next();
//use ObjectMapper to convert Datastore information to domain object and add to list
}
//return list