Google 云数据存储 - Java - GQLQuery 游标

Google Cloud Datastore - Java - GQLQuery Cursors

我对如何在 GQL 查询中正确传递游标感到有点困惑。这是我目前所拥有的:

DatastoreV1.GqlQuery.Builder query = DatastoreV1.GqlQuery.newBuilder().setQueryString(q);
query.addNameArgBuilder().setName("cursor").setCursor(cursor);

我的查询字符串以 OFFSET @cursor 结尾。

如果我要传递光标,我可以看到它应该如何正常工作。但是,我第一次 运行 查询时,我不会有游标,所以我将传递 null.

我是否需要为 运行 编写一个单独的查询(没有 OFFSET @cursor),并且只在从结果集中检索一个游标时才传递一个游标,或者查询仍然 运行 如果传递空游标是否正确?

GQL 查询字符串中的每个绑定都需要相应的 arg。但是可以使用空游标来表示查询应该从结果集的开头开始:

import com.google.protobuf.ByteString;

...

GqlQuery.Builder query = GqlQuery.newBuilder().setQueryString(q);
query.addNameArgBuilder()
    .setName("cursor")
    .setCursor(ByteString.EMPTY);