我如何知道Google Datastore Java Library何时没有更多结果

时间:2018-04-05 20:44:53

标签: java google-cloud-datastore

使用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 ( ??? );

1 个答案:

答案 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