クラス DefaultBridgedReactiveSession
- 実装されたすべてのインターフェース:
CloseableSE
、AutoCloseableSE
、ReactiveSession
ReactiveSession
のデフォルト実装。この実装は、非同期 CqlSession
メソッドをリアクティブ実行パターンに橋渡しします。 呼び出しは、サブスクライバーが結果の Publisher
をサブスクライブするまで延期されます。呼び出しは、CompletionStage
SE をサブスクライブして実行され、呼び出しが完了すると結果が返されます。
要素は netty EventLoop スレッドで発行されます。AsyncResultSet
は後続のページの asynchronous requesting
を許可します。前のページのすべての要素を発行した後、次のページがリクエストされます。ただし、これは Datastax が完全にリアクティブドライバーを提供するまでの中間的なソリューションです。
このクラスによって実行されるすべての CQL 操作は、ログカテゴリとして org.springframework.data.cassandra.core.cql.DefaultBridgedReactiveSession
を使用してデバッグレベルでログに記録されます。
- 導入:
- 2.0
- 作成者:
- Mark Paluch, Mateusz Stefek
- 関連事項:
Mono
ReactiveResultSet
Scheduler
ReactiveSession
コンストラクターのサマリー
コンストラクター説明DefaultBridgedReactiveSession
(com.datastax.oss.driver.api.core.CqlSession session) CqlSession
用の新しいDefaultBridgedReactiveSession
を作成します。メソッドのサマリー
修飾子と型メソッド説明void
close()
このセッションインスタンスのシャットダウンを開始し、シャットダウンが完了するまでブロックします。reactor.core.publisher.Mono<ReactiveResultSet>
execute
(com.datastax.oss.driver.api.core.cql.Statement<?> statement) 提供されたクエリを実行します。reactor.core.publisher.Mono<ReactiveResultSet>
提供されたクエリを実行します。reactor.core.publisher.Mono<ReactiveResultSet>
指定された値を使用して、指定されたクエリを実行します。reactor.core.publisher.Mono<ReactiveResultSet>
指定された名前付き値を使用して、指定されたクエリを実行します。com.datastax.oss.driver.api.core.context.DriverContext
このドライバーインスタンスで使用されるすべてのポリシーへのアクセスを提供するコンテキストを返します。OptionalSE<com.datastax.oss.driver.api.core.CqlIdentifier>
このセッションが現在接続されているキースペース、またはこのセッションがどのキースペースにも接続されていない場合はOptional.empty()
です。com.datastax.oss.driver.api.core.metadata.Metadata
Cassandra クラスターのトポロジとスキーマメタデータのスナップショットを返します。boolean
isClosed()
このセッションインスタンスが閉じられているかどうか。reactor.core.publisher.Mono<com.datastax.oss.driver.api.core.cql.PreparedStatement>
prepare
(com.datastax.oss.driver.api.core.cql.SimpleStatement statement) 提供されたクエリを準備します。reactor.core.publisher.Mono<com.datastax.oss.driver.api.core.cql.PreparedStatement>
指定されたクエリ文字列を準備します。
コンストラクターの詳細
DefaultBridgedReactiveSession
public DefaultBridgedReactiveSession(com.datastax.oss.driver.api.core.CqlSession session) CqlSession
用の新しいDefaultBridgedReactiveSession
を作成します。- パラメーター:
session
- null であってはなりません。- 導入:
- 2.1
メソッドの詳細
getMetadata
public com.datastax.oss.driver.api.core.metadata.Metadata getMetadata()インターフェースからコピーされた説明:ReactiveSession
Cassandra クラスターのトポロジとスキーマメタデータのスナップショットを返します。アトミック更新を提供するために、このメソッドは不変のオブジェクトを返します。つまり、特定のインスタンスに含まれるノードリスト、トークンマップ、スキーマは常に互いに一貫性を保ちます (ただし、
Node
自体は不変ではないことに注意してください。そのプロパティの一部 (特にNode.getState()
) は動的に更新されます)。上記の結果から、メタデータの最新のビューが必要になるたびに、このメソッドを呼び出す必要があります。これは凍結されたスナップショットであり、時間の経過とともに古くなるため、一度呼び出して結果を保存しないでください。
メタデータのリフレッシュによってイベント (ノードの追加 / 削除、スキーマイベントなど) がトリガーされた場合、これらのイベントを受信するまでにメタデータの新しいバージョンが表示されることが保証されます。
- 次で指定:
- インターフェース
ReactiveSession
のgetMetadata
- 戻り値:
null
になることはありませんが、構成でメタデータが無効になっている場合は空になる可能性があります。
getKeyspace
インターフェースからコピーされた説明:ReactiveSession
このセッションが現在接続されているキースペース、またはこのセッションがどのキースペースにも接続されていない場合はOptional.empty()
です。これを設定するには、セッションを初期化する前(構成の
session-keyspace
オプションまたはSessionBuilder.withKeyspace(CqlIdentifier)
を使用)または実行時に、クライアントがキースペースを変更するリクエスト(CQLUSE
クエリなど)を発行する場合の 2 つの方法があります。この 2 番目の方法は、古いキースペースを期待する他のリクエストが同時に実行される可能性があるため、本質的に安全ではないことに注意してください。些細なケース(リクエストが同時に実行されない cqlsh スタイルのプログラムなど)を除いて、この方法は強く推奨されません。- 次で指定:
- インターフェース
ReactiveSession
のgetKeyspace
isClosed
public boolean isClosed()インターフェースからコピーされた説明:ReactiveSession
このセッションインスタンスが閉じられているかどうか。このメソッドは、このセッションのクローズが開始されるとすぐに true を返しますが、クローズが完了したことを保証するものではないことに注意してください。クローズが完了したことを保証したい場合は、
close()
を呼び出して、それが返されるまで待機します (または、非常に短いタイムアウトでcloseAsync()
の get メソッドを呼び出し、タイムアウトしないことを確認します)。- 次で指定:
- インターフェース
ReactiveSession
のisClosed
- 戻り値:
- このセッションインスタンスが閉じられている場合は
true
、それ以外の場合はfalse
です。
getContext
public com.datastax.oss.driver.api.core.context.DriverContext getContext()インターフェースからコピーされた説明:ReactiveSession
このドライバーインスタンスで使用されるすべてのポリシーへのアクセスを提供するコンテキストを返します。- 次で指定:
- インターフェース
ReactiveSession
のgetContext
- 戻り値:
- このドライバーインスタンスで使用されるすべてのポリシーへのアクセスを提供するコンテキスト。
execute
インターフェースからコピーされた説明:ReactiveSession
提供されたクエリを実行します。これは
execute(new SimpleStatement(query))
の便利なメソッドです。- 次で指定:
- インターフェース
ReactiveSession
のexecute
- パラメーター:
query
- 実行する CQL クエリ。- 戻り値:
- クエリの結果。その結果は null になることはありませんが、空になることがあります (SELECT 以外のクエリの場合は空になります)。
execute
インターフェースからコピーされた説明:ReactiveSession
指定された値を使用して、指定されたクエリを実行します。これは
execute(new SimpleStatement(query, values))
の便利なメソッドです。- 次で指定:
- インターフェース
ReactiveSession
のexecute
- パラメーター:
query
- 実行する CQL クエリ。values
-query
の実行に必要な値。詳細についてはSimpleStatement.newInstance(String, Object...)
を参照してください。- 戻り値:
- クエリの結果。その結果は null になることはありませんが、空になることがあります (SELECT 以外のクエリの場合は空になります)。
execute
public reactor.core.publisher.Mono<ReactiveResultSet> execute(StringSE query, MapSE<StringSE, ObjectSE> values) インターフェースからコピーされた説明:ReactiveSession
指定された名前付き値を使用して、指定されたクエリを実行します。これは
execute(new SimpleStatement(query, values))
の便利なメソッドです。- 次で指定:
- インターフェース
ReactiveSession
のexecute
- パラメーター:
query
- 実行する CQL クエリ。values
-query
の実行に必要な値。詳細についてはSimpleStatement.newInstance(String, Map)
を参照してください。- 戻り値:
- クエリの結果。その結果は null になることはありませんが、空になることがあります (SELECT 以外のクエリの場合は空になります)。
execute
public reactor.core.publisher.Mono<ReactiveResultSet> execute(com.datastax.oss.driver.api.core.cql.Statement<?> statement) インターフェースからコピーされた説明:ReactiveSession
提供されたクエリを実行します。このメソッドは、データベースから少なくとも何らかの結果が受信されるまでブロックします。ただし、SELECT クエリの場合、結果が完全に受信されたことは保証されません。ただし、データベースから何らかのレスポンスが受信されたことは保証され、特に、リクエストが無効な場合は、このメソッドによって例外がスローされることが保証されます。
- 次で指定:
- インターフェース
ReactiveSession
のexecute
- パラメーター:
statement
- 実行する CQL クエリ (任意のStatement
にすることができます)。- 戻り値:
- クエリの結果。その結果は null になることはありませんが、空になることがあります (SELECT 以外のクエリの場合は空になります)。
prepare
public reactor.core.publisher.Mono<com.datastax.oss.driver.api.core.cql.PreparedStatement> prepare(StringSE query) インターフェースからコピーされた説明:ReactiveSession
指定されたクエリ文字列を準備します。- 次で指定:
- インターフェース
ReactiveSession
のprepare
- パラメーター:
query
- 準備する CQL クエリ文字列- 戻り値:
query
に対応する準備されたステートメント。
prepare
public reactor.core.publisher.Mono<com.datastax.oss.driver.api.core.cql.PreparedStatement> prepare(com.datastax.oss.driver.api.core.cql.SimpleStatement statement) インターフェースからコピーされた説明:ReactiveSession
提供されたクエリを準備します。このメソッドは
ReactiveSession.prepare(String)
のように動作しますが、結果のPreparedStatement
はstatement
に設定されたクエリプロパティを継承することに注意してください。具体的には、次のコードでは次のようになります。Statement toPrepare = SimpleStatement.newInstance("SELECT * FROM test WHERE k=?") .setConsistencyLevel(ConsistencyLevel.QUORUM); PreparedStatement prepared = session.prepare(toPrepare); session.execute(prepared.bind("someValue"));
最終的な実行はクォーラム一貫性で実行されます。同じ CQL ステートメントが複数回準備された場合、このメソッドへのすべての呼び出しは同じ
PreparedStatement
オブジェクトを返しますが、メソッドは準備されたStatement
のプロパティをこのオブジェクトに適用することに注意してください。- 次で指定:
- インターフェース
ReactiveSession
のprepare
- パラメーター:
statement
- 準備する声明- 戻り値:
statement
に対応する準備されたステートメント。
close
public void close()インターフェースからコピーされた説明:ReactiveSession
このセッションインスタンスのシャットダウンを開始し、シャットダウンが完了するまでブロックします。- 次で指定:
- インターフェース
AutoCloseableSE
のclose
- 次で指定:
- インターフェース
CloseableSE
のclose
- 次で指定:
- インターフェース
ReactiveSession
のclose