1

GQL クエリでカーソルを適切に渡す方法について少し混乱しています。これが私がこれまでに持っているものです:

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

私のクエリ文字列はで終わりますOFFSET @cursor

渡すカーソルがある場合、これがどのように正しく機能するかがわかります。ただし、クエリを初めて実行するときはカーソルがないため、 を渡しnullます。

最初に実行するために別のクエリを (なしでOFFSET @cursor) 記述し、結果セットからカーソルを取得するときにのみカーソルを渡す必要がありますか?それとも、null カーソルを渡した場合でもクエリは正しく実行されますか?

4

1 に答える 1

1

GQL クエリ文字列のすべてのバインディングには、対応する引数が必要です。ただし、空のカーソルを使用して、クエリを結果セットの先頭から開始する必要があることを示すことができます。

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 に答える