インターフェース ReactiveResultSet
ReactiveResultSet
の行の取得は、通常、ページングされます (結果の最初のページがフェッチされ、最初のページの結果がすべて消費された後にのみ次のページがフェッチされます)。ページのサイズは、グローバルに、または Statement.setPageSize(int)
を使用してステートメントごとに構成できます。
ただし、この ReactiveResultSet
ページングは、ネイティブプロトコルのバージョン 1 (つまり、Cassandra 1.2 の場合、またはバージョン 1 が明示的にリクエストされている場合) では利用できないことに注意してください。プロトコルバージョン 1 が使用されている場合、ReactiveResultSet
は常に完全にフェッチされ、クエリによってメモリに保持されない ReactiveResultSet
が生成されないようにするのはクライアントの責任です。
このクラスはスレッドセーフではないことに注意してください。
- 導入:
- 2.0
- 作成者:
- Mark Paluch
- 関連事項:
Flux
ReactiveSession
AsyncResultSet
メソッドのサマリー
修飾子と型メソッド説明reactor.core.publisher.Flux<com.datastax.oss.driver.api.core.cql.Row>
結果セットチャンクに含まれる行に対してFlux
を返します。ListSE<com.datastax.oss.driver.api.core.cql.ExecutionInfo>
このReactiveResultSet
を取得するために行われたすべてのクエリの実行情報を返します。com.datastax.oss.driver.api.core.cql.ColumnDefinitions
このReactiveResultSet
で返される列を返します。com.datastax.oss.driver.api.core.cql.ExecutionInfo
このReactiveResultSet
に対して行われた最後のクエリの実行に関する情報を返します。reactor.core.publisher.Flux<com.datastax.oss.driver.api.core.cql.Row>
rows()
透過的なページングを適用して、この結果セットに含まれる行に対してFlux
を返します。boolean
この ResultSet を生成したクエリが条件付き更新だった場合、それが正常に適用されたかどうかを返します。
メソッドの詳細
rows
reactor.core.publisher.Flux<com.datastax.oss.driver.api.core.cql.Row> rows()透過的なページングを適用して、この結果セットに含まれる行に対してFlux
を返します。Flux
は、リアクティブ要求に応じてこのReactiveResultSet
内のすべてのレコードをストリームし、現在のpaging state
SE を適用した基礎となるクエリを発行して次の結果チャンクを取得します。- 戻り値:
- 結果全体のすべての
rows
にストリームされる行のFlux
。
availableRows
reactor.core.publisher.Flux<com.datastax.oss.driver.api.core.cql.Row> availableRows()この結果セットチャンクに含まれる行に対してFlux
を返します。このメソッドは透過的なページングを適用しません。次の結果チャンクを取得するには、getExecutionInfo()
からpaging state
SE を使用して後続のクエリを発行します。- 戻り値:
- この
ReactiveResultSet
内のすべてのrows
にストリーミングされる行のFlux
。 - 導入:
- 2.1
getColumnDefinitions
com.datastax.oss.driver.api.core.cql.ColumnDefinitions getColumnDefinitions()このReactiveResultSet
で返される列を返します。- 戻り値:
- この
ReactiveResultSet
で返される列。
wasApplied
boolean wasApplied()この ResultSet を生成したクエリが条件付き更新だった場合、それが正常に適用されたかどうかを返します。一貫性を保つために、このメソッドは条件なしのクエリに対しては常に
true
を返します (ただし、その場合はメソッドを呼び出す理由はありません)。これは条件付き DDL ステートメント (CREATE KEYSPACE... IF NOT EXISTS
、CREATE TABLE... IF NOT EXISTS
) の場合にも当てはまり、Cassandra は[applied]
列を返しません。2.0.9 および 2.1.0-rc2 より厳密に低いバージョンの Cassandra の場合、サーバー側のバグ (CASSANDRA-7337) により、このメソッドは条件付きクエリを含むバッチに対して常に
true
を返すことに注意してください。- 戻り値:
- クエリが条件付き更新だった場合、それが適用されたかどうか。他の種類のクエリの場合は
true
。 - 関連事項:
getExecutionInfo
com.datastax.oss.driver.api.core.cql.ExecutionInfo getExecutionInfo()このReactiveResultSet
に対して行われた最後のクエリの実行に関する情報を返します。ほとんどの場合、結果セットは 1 つのクエリだけで取得されますが、大きな結果セットはページングされ、複数のクエリで取得される可能性があることに注意してください。その場合、このメソッドは最後に実行されたクエリの
ExecutionInfo
を返します。すべてのクエリの情報を取得するには、getAllExecutionInfo()
を使用します。返されるオブジェクトには、クエリされたホストなどの基本情報が含まれますが、クエリのトレースが有効になっている場合は Cassandra クエリトレースも含まれます。
- 戻り値:
- この
ReactiveResultSet
に対して行われた最後のクエリのExecutionInfo
。
getAllExecutionInfo
ListSE<com.datastax.oss.driver.api.core.cql.ExecutionInfo> getAllExecutionInfo()このReactiveResultSet
を取得するために行われたすべてのクエリの実行情報を返します。結果セットがページングできるほど大きくない場合、返されるリストはシングルトンになります。ただし、ページングが使用されている場合、返されるリストには、この結果セットを取得するために実行されたすべてのクエリ (呼び出し時) の
ExecutionInfo
オブジェクトが、クエリが行われた順序で含まれます。- 戻り値:
- この
ReactiveResultSet
に対して行われたすべてのクエリのExecutionInfo
のリスト。