1

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

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

我的查询字符串以OFFSET @cursor.

如果我有一个光标可以通过,我可以看到它应该如何正常工作。但是,第一次运行查询时,我没有游标,所以我将通过null.

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

4

1 回答 1

1

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

import com.google.protobuf.ByteString;

...

GqlQuery.Builder query = GqlQuery.newBuilder().setQueryString(q);
query.addNameArgBuilder()
    .setName("cursor")
    .setCursor(ByteString.EMPTY);
于 2015-12-21T18:20:35.047 回答