クラス AsyncCassandraTemplate

java.lang.ObjectSE
org.springframework.data.cassandra.core.AsyncCassandraTemplate
実装されたすべてのインターフェース:
AwareApplicationContextAwareApplicationEventPublisherAwareAsyncCassandraOperations

public class AsyncCassandraTemplate extends ObjectSE implements AsyncCassandraOperations, ApplicationEventPublisherAware, ApplicationContextAware
AsyncCassandraOperations の主な実装。非同期 Cassandra の使用を簡素化し、一般的なエラーを回避できます。コア Cassandra ワークフローを実行します。このクラスは CQL クエリまたは更新を実行し、ResultSet の反復処理を開始し、Cassandra 例外をキャッチして、org.springframework.dao パッケージで定義されている汎用的でより情報量の多い例外階層に変換します。

CqlSession 参照を使用した直接インスタンス化を介してサービス実装内で使用することも、アプリケーションコンテキストで準備して Bean 参照としてサービスに与えることもできます。

このクラスは、setUsePreparedStatements(boolean) を有効にするときに準備されたステートメントの使用をサポートします。このクラスのメソッド ( select(Query, Class)update(Query, org.springframework.data.cassandra.core.query.Update, Class) など) によって作成されたすべてのステートメントは、準備されたステートメントとして実行されます。また、メソッド ( select(String, Class)and others など) によって受け入れられるステートメントは、実行前に準備されます。メソッドに渡される Statement オブジェクトは、準備できるように SimpleStatement である必要があることに注意してください。

メモ: CqlSession は、アプリケーションコンテキストで常に Bean として構成する必要があります。最初の場合はサービスに直接指定され、2 番目の場合は準備されたテンプレートに指定されます。

導入:
2.0
作成者:
Mark Paluch, John Blum
関連事項:
  • コンストラクターの詳細

    • AsyncCassandraTemplate

      public AsyncCassandraTemplate(com.datastax.oss.driver.api.core.CqlSession session)
      指定された CqlSession とデフォルトの MappingCassandraConverter で初期化された AsyncCassandraTemplate のインスタンスを作成します。
      パラメーター:
      session - CqlSession は Cassandra と対話していました。null であってはなりません。
      関連事項:
    • AsyncCassandraTemplate

      public AsyncCassandraTemplate(com.datastax.oss.driver.api.core.CqlSession session, CassandraConverter converter)
      指定された CqlSession および CassandraConverter で初期化された AsyncCassandraTemplate のインスタンスを作成します。
      パラメーター:
      session - CqlSession は Cassandra と対話していました。null であってはなりません。
      converter - CassandraConverter は Java 型と Cassandra 型の間の変換に使用されます。null であってはなりません。
      関連事項:
    • AsyncCassandraTemplate

      public AsyncCassandraTemplate(SessionFactory sessionFactory, CassandraConverter converter)
      指定された SessionFactoryCassandraConverter で初期化された AsyncCassandraTemplate のインスタンスを作成します。
      パラメーター:
      sessionFactory - SessionFactory は Cassandra とやり取りしていました。null であってはなりません。
      converter - CassandraConverter は Java 型と Cassandra 型の間の変換に使用されます。null であってはなりません。
      関連事項:
    • AsyncCassandraTemplate

      public AsyncCassandraTemplate(AsyncCqlTemplate asyncCqlTemplate, CassandraConverter converter)
      指定された AsyncCqlTemplateCassandraConverter で初期化された AsyncCassandraTemplate のインスタンスを作成します。
      パラメーター:
      asyncCqlTemplate - AsyncCqlTemplate は Cassandra とやり取りしていました。null であってはなりません。
      converter - CassandraConverter は Java 型と Cassandra 型の間の変換に使用されます。null であってはなりません。
      関連事項:
  • メソッドの詳細

    • setApplicationEventPublisher

      public void setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher)
      次で指定:
      インターフェース ApplicationEventPublisherAwaresetApplicationEventPublisher 
    • setApplicationContext

      public void setApplicationContext(ApplicationContext applicationContext) throws BeansException
      次で指定:
      インターフェース ApplicationContextAwaresetApplicationContext 
      例外:
      BeansException
    • setEntityCallbacks

      public void setEntityCallbacks(@Nullable EntityCallbacks entityCallbacks)
      永続化操作中にエンティティを前処理 / 後処理するように EntityCallbacks を構成します。
      パラメーター:
      entityCallbacks -
    • setEntityLifecycleEventsEnabled

      public void setEntityLifecycleEventsEnabled(boolean enabled)
      AfterLoadEventBeforeSaveEvent などのライフサイクルイベントを発行するかどうか、発行を抑制するかどうかを構成します。デフォルトで有効になっています。
      パラメーター:
      enabled - エンティティのライフサイクルイベントを有効にする true。エンティティのライフサイクルイベントを無効にする false
      導入:
      4.0
      関連事項:
    • getAsyncCqlOperations

      public AsyncCqlOperations getAsyncCqlOperations()
      インターフェースからコピーされた説明: AsyncCassandraOperations
      基礎となる AsyncCqlOperations を公開して、非同期 CQL 操作を可能にします。
      次で指定:
      インターフェース AsyncCassandraOperationsgetAsyncCqlOperations 
      戻り値:
      基礎となる AsyncCqlOperations
      関連事項:
    • getConverter

      public CassandraConverter getConverter()
      インターフェースからコピーされた説明: AsyncCassandraOperations
      基本となる CassandraConverter を返します。
      次で指定:
      インターフェース AsyncCassandraOperationsgetConverter 
      戻り値:
      基礎となる CassandraConverter
    • isUsePreparedStatements

      public boolean isUsePreparedStatements()
      このインスタンスが prepared statements を使用するように構成されているかどうかを返します。有効 (デフォルト) の場合、すべての永続化メソッド ( select(java.lang.String, java.lang.Class<T>)update(org.springframework.data.cassandra.core.query.Query, org.springframework.data.cassandra.core.query.Update, java.lang.Class<?>) など) は準備されたステートメントを使用します。Statement を受け入れるメソッドは、ステートメントの準備に参加するために SimpleStatement インスタンスで呼び出される必要があることに注意してください。
      戻り値:
      準備されたステートメントの使用が有効な場合は true。それ以外の場合は false。
      導入:
      3.2
    • setUsePreparedStatements

      public void setUsePreparedStatements(boolean usePreparedStatements)
      prepared statements の使用を有効 / 無効にします。有効 (デフォルト) の場合、すべての永続化メソッド ( select(java.lang.String, java.lang.Class<T>)update(org.springframework.data.cassandra.core.query.Query, org.springframework.data.cassandra.core.query.Update, java.lang.Class<?>) など) は準備されたステートメントを使用します。Statement を受け入れるメソッドは、ステートメントの準備に参加するために SimpleStatement インスタンスで呼び出される必要があることに注意してください。
      パラメーター:
      usePreparedStatements - 準備されたステートメントを使用するかどうか。
      導入:
      3.2
    • getEntityOperations

      protected org.springframework.data.cassandra.core.EntityOperations getEntityOperations()
      Cassandra データソース内のエンティティに対してデータアクセス操作を実行するために使用される EntityOperations を返します。
      戻り値:
      このテンプレートに設定された EntityOperations
      関連事項:
      • EntityOperations
    • getProjectionFactory

      @DeprecatedSE protected SpelAwareProxyProjectionFactory getProjectionFactory()
      使用すべきではありません。
      3.4 以降、代わりに CassandraConverter.getProjectionFactory() を使用してください。
      このテンプレートが CQL クエリ 射影を処理するために使用する、構成された ProjectionFactory への参照を返します。
      戻り値:
      CQL クエリ射影を処理するためにこのテンプレートで使用される、構成された ProjectionFactory への参照。
      導入:
      2.1
      関連事項:
    • getStatementFactory

      protected StatementFactory getStatementFactory()
      このテンプレートによって Cassandra CQL ステートメントを構築および実行するために使用される StatementFactory を返します。
      戻り値:
      Cassandra CQL ステートメントを構築および実行するためにこのテンプレートで使用される StatementFactory
      導入:
      2.1
      関連事項:
    • select

      public <T> CompletableFutureSE<ListSE<T>> select(StringSE cql, ClassSE<T> entityClass)
      インターフェースからコピーされた説明: AsyncCassandraOperations
      SELECT クエリを実行し、結果の項目をエンティティの ListSE に変換します。
      次で指定:
      インターフェース AsyncCassandraOperationsselect 
      パラメーター:
      cql - null であってはなりません。
      entityClass - エンティティ型は null にできません。
      戻り値:
      変換された結果
    • select

      public <T> CompletableFutureSE<VoidSE> select(StringSE cql, ConsumerSE<T> entityConsumer, ClassSE<T> entityClass) throws DataAccessException
      インターフェースからコピーされた説明: AsyncCassandraOperations
      SELECT クエリを実行し、結果の項目を変換して各エンティティの ConsumerSE に通知します。
      次で指定:
      インターフェース AsyncCassandraOperationsselect 
      パラメーター:
      cql - null であってはなりません。
      entityConsumer - 各エンティティで一度に 1 つのオブジェクトが通知されるオブジェクトは null であってはなりません。
      entityClass - エンティティ型は null にできません。
      戻り値:
      完了ハンドル
      例外:
      DataAccessException - クエリの実行に問題がある場合。
    • selectOne

      public <T> CompletableFutureSE<T> selectOne(StringSE cql, ClassSE<T> entityClass)
      インターフェースからコピーされた説明: AsyncCassandraOperations
      SELECT クエリを実行し、結果のアイテムをエンティティに変換します。
      次で指定:
      インターフェース AsyncCassandraOperationsselectOne 
      パラメーター:
      cql - null であってはなりません。
      entityClass - エンティティ型は null にできません。
      戻り値:
      変換されたオブジェクトまたは null。
    • execute

      public CompletableFutureSE<com.datastax.oss.driver.api.core.cql.AsyncResultSet> execute(com.datastax.oss.driver.api.core.cql.Statement<?> statement) throws DataAccessException
      インターフェースからコピーされた説明: AsyncCassandraOperations
      指定された Cassandra Statement を実行します。このコマンドの実行によって発生したエラーはすべて、Spring の DAO 例外階層に変換されます。
      次で指定:
      インターフェース AsyncCassandraOperationsexecute 
      パラメーター:
      statement - Cassandra Statement は null であってはなりません。
      戻り値:
      AsyncResultSet
      例外:
      DataAccessException - クエリの実行に問題がある場合。
    • select

      public <T> CompletableFutureSE<ListSE<T>> select(com.datastax.oss.driver.api.core.cql.Statement<?> statement, ClassSE<T> entityClass)
      インターフェースからコピーされた説明: AsyncCassandraOperations
      SELECT クエリを実行し、結果の項目をエンティティの ListSE に変換します。
      次で指定:
      インターフェース AsyncCassandraOperationsselect 
      パラメーター:
      statement - null であってはなりません。
      entityClass - エンティティ型は null にできません。
      戻り値:
      変換された結果
    • select

      public <T> CompletableFutureSE<VoidSE> select(com.datastax.oss.driver.api.core.cql.Statement<?> statement, ConsumerSE<T> entityConsumer, ClassSE<T> entityClass) throws DataAccessException
      インターフェースからコピーされた説明: AsyncCassandraOperations
      SELECT クエリを実行し、結果の項目を変換して各エンティティの ConsumerSE に通知します。
      次で指定:
      インターフェース AsyncCassandraOperationsselect 
      パラメーター:
      statement - null であってはなりません。
      entityConsumer - 各エンティティで一度に 1 つのオブジェクトが通知されるオブジェクトは null であってはなりません。
      entityClass - エンティティ型は null にできません。
      戻り値:
      完了ハンドル
      例外:
      DataAccessException - クエリの実行に問題がある場合。
    • selectOne

      public <T> CompletableFutureSE<T> selectOne(com.datastax.oss.driver.api.core.cql.Statement<?> statement, ClassSE<T> entityClass)
      インターフェースからコピーされた説明: AsyncCassandraOperations
      SELECT クエリを実行し、結果のアイテムをエンティティに変換します。
      次で指定:
      インターフェース AsyncCassandraOperationsselectOne 
      パラメーター:
      statement - null であってはなりません。
      entityClass - エンティティ型は null にできません。
      戻り値:
      変換されたオブジェクトまたは null。
    • slice

      public <T> CompletableFutureSE<Slice<T>> slice(com.datastax.oss.driver.api.core.cql.Statement<?> statement, ClassSE<T> entityClass)
      インターフェースからコピーされた説明: AsyncCassandraOperations
      ページング付きの SELECT クエリを実行し、結果セットをエンティティの Slice に変換します。スライスされたクエリは、有効な fetch size をページサイズに変換します。
      次で指定:
      インターフェース AsyncCassandraOperationsslice 
      パラメーター:
      statement - CQL ステートメントは null であってはなりません。
      entityClass - エンティティ型は null にできません。
      戻り値:
      変換された結果
      関連事項:
    • select

      public <T> CompletableFutureSE<ListSE<T>> select(Query query, ClassSE<T> entityClass) throws DataAccessException
      インターフェースからコピーされた説明: AsyncCassandraOperations
      SELECT クエリを実行し、結果の項目をエンティティの ListSE に変換します。
      次で指定:
      インターフェース AsyncCassandraOperationsselect 
      パラメーター:
      query - null であってはなりません。
      entityClass - エンティティ型は null にできません。
      戻り値:
      変換された結果
      例外:
      DataAccessException - クエリの実行に問題がある場合。
    • select

      public <T> CompletableFutureSE<VoidSE> select(Query query, ConsumerSE<T> entityConsumer, ClassSE<T> entityClass) throws DataAccessException
      インターフェースからコピーされた説明: AsyncCassandraOperations
      SELECT クエリを実行し、結果の項目を変換して各エンティティの ConsumerSE に通知します。
      次で指定:
      インターフェース AsyncCassandraOperationsselect 
      パラメーター:
      query - null であってはなりません。
      entityConsumer - 各エンティティで一度に 1 つのオブジェクトが通知されるオブジェクトは null であってはなりません。
      entityClass - エンティティ型は null にできません。
      戻り値:
      完了ハンドル
      例外:
      DataAccessException - クエリの実行に問題がある場合。
    • selectOne

      public <T> CompletableFutureSE<T> selectOne(Query query, ClassSE<T> entityClass) throws DataAccessException
      インターフェースからコピーされた説明: AsyncCassandraOperations
      SELECT クエリを実行し、結果のアイテムをエンティティに変換します。
      次で指定:
      インターフェース AsyncCassandraOperationsselectOne 
      パラメーター:
      query - null であってはなりません。
      entityClass - エンティティ型は null にできません。
      戻り値:
      変換されたオブジェクトまたは null。
      例外:
      DataAccessException - クエリの実行に問題がある場合。
    • slice

      public <T> CompletableFutureSE<Slice<T>> slice(Query query, ClassSE<T> entityClass) throws DataAccessException
      インターフェースからコピーされた説明: AsyncCassandraOperations
      ページングを使用して SELECT クエリを実行し、結果セットをエンティティの Slice に変換します。
      次で指定:
      インターフェース AsyncCassandraOperationsslice 
      パラメーター:
      query - CQL ステートメントの作成に使用されるクエリオブジェクトは null であってはなりません。
      entityClass - エンティティ型は null にできません。
      戻り値:
      変換された結果
      例外:
      DataAccessException - クエリの実行に問題がある場合。
      関連事項:
    • update

      public CompletableFutureSE<BooleanSE> update(Query query, Update update, ClassSE<?> entityClass) throws DataAccessException
      インターフェースからコピーされた説明: AsyncCassandraOperations
      クエリされたエンティティを更新し、更新が適用された場合は true を返します。
      次で指定:
      インターフェース AsyncCassandraOperationsupdate 
      パラメーター:
      query - null であってはなりません。
      update - null であってはなりません。
      entityClass - エンティティ型は null にできません。
      例外:
      DataAccessException - クエリの実行に問題がある場合。
    • delete

      public CompletableFutureSE<BooleanSE> delete(Query query, ClassSE<?> entityClass) throws DataAccessException
      インターフェースからコピーされた説明: AsyncCassandraOperations
      Query によってテーブルからエンティティ (行)/columns を削除します。
      次で指定:
      インターフェース AsyncCassandraOperationsdelete 
      パラメーター:
      query - null であってはなりません。
      entityClass - エンティティ型は null にできません。
      戻り値:
      削除が適用された場合は true。
      例外:
      DataAccessException - クエリの実行に問題がある場合。
    • count

      public CompletableFutureSE<LongSE> count(ClassSE<?> entityClass)
      インターフェースからコピーされた説明: AsyncCassandraOperations
      指定されたエンティティクラスの行数を返します。
      次で指定:
      インターフェース AsyncCassandraOperationscount 
      パラメーター:
      entityClass - エンティティの typeSE。null であってはなりません。
      戻り値:
      既存のエンティティの数。
    • count

      public CompletableFutureSE<LongSE> count(Query query, ClassSE<?> entityClass) throws DataAccessException
      インターフェースからコピーされた説明: AsyncCassandraOperations
      Query を適用して、指定されたエンティティクラスの行数を返します。このオーバーライドされたメソッドにより、ユーザーは Query 述語を使用して選択条件をさらに絞り込み、指定された typeSE のエンティティのうち条件に一致するエンティティの数を判断できます。
      次で指定:
      インターフェース AsyncCassandraOperationscount 
      パラメーター:
      query - 実行するユーザー指定のカウント Query。null にすることはできません。
      entityClass - エンティティの typeSE。null であってはなりません。
      戻り値:
      既存のエンティティの数。
      例外:
      DataAccessException - クエリの実行中に問題が発生した場合。
    • exists

      public CompletableFutureSE<BooleanSE> exists(ObjectSE id, ClassSE<?> entityClass)
      インターフェースからコピーされた説明: AsyncCassandraOperations
      指定された id を持つ entityClass の行が存在するかどうかを確認します。
      次で指定:
      インターフェース AsyncCassandraOperationsexists 
      パラメーター:
      id - ID 値。単一の主キーの場合はプレーンな値です。複合主キーの場合は、PrimaryKeyClass または MapId のインスタンスです。null にすることはできません。
      entityClass - エンティティの typeSE。null であってはなりません。
      戻り値:
      オブジェクトが存在する場合は true。
    • exists

      public CompletableFutureSE<BooleanSE> exists(Query query, ClassSE<?> entityClass) throws DataAccessException
      インターフェースからコピーされた説明: AsyncCassandraOperations
      entityClass Query の結果が少なくとも 1 つの行を生成するかどうかを判別します。
      次で指定:
      インターフェース AsyncCassandraOperationsexists 
      パラメーター:
      query - 実行するユーザー指定の Query が存在します。null にすることはできません。
      entityClass - エンティティの typeSE。null であってはなりません。
      戻り値:
      オブジェクトが存在する場合は true。
      例外:
      DataAccessException - クエリの実行中に問題が発生した場合。
    • selectOneById

      public <T> CompletableFutureSE<T> selectOneById(ObjectSE id, ClassSE<T> entityClass)
      インターフェースからコピーされた説明: AsyncCassandraOperations
      指定された entityClass に対して id による選択を実行します。
      次で指定:
      インターフェース AsyncCassandraOperationsselectOneById 
      パラメーター:
      id - Id 値。単一の主キーの場合はプレーンな値です。複合主キーの場合は PrimaryKeyClass または MapId のいずれかです。null にすることはできません。
      entityClass - エンティティ型は null にできません。
      戻り値:
      変換されたオブジェクトまたは null。
    • insert

      public <T> CompletableFutureSE<T> insert(T entity)
      インターフェースからコピーされた説明: AsyncCassandraOperations
      指定されたエンティティを挿入し、挿入が適用された場合はエンティティを返します。
      次で指定:
      インターフェース AsyncCassandraOperationsinsert 
      パラメーター:
      entity - 挿入するエンティティ。null であってはなりません。
      戻り値:
      挿入されたエンティティ。
    • insert

      public <T> CompletableFutureSE<EntityWriteResult<T>> insert(T entity, InsertOptions options)
      インターフェースからコピーされた説明: AsyncCassandraOperations
      WriteOptions を適用する指定されたエンティティを挿入し、挿入が適用された場合はエンティティを返します。
      次で指定:
      インターフェース AsyncCassandraOperationsinsert 
      パラメーター:
      entity - 挿入するエンティティ。null であってはなりません。
      options - null であってはなりません。
      戻り値:
      この操作の EntityWriteResult
      関連事項:
    • update

      public <T> CompletableFutureSE<T> update(T entity)
      インターフェースからコピーされた説明: AsyncCassandraOperations
      指定されたエンティティを更新し、更新が適用された場合はエンティティを返します。
      次で指定:
      インターフェース AsyncCassandraOperationsupdate 
      パラメーター:
      entity - 更新するエンティティ。null であってはなりません。
      戻り値:
      更新されたエンティティ。
    • update

      public <T> CompletableFutureSE<EntityWriteResult<T>> update(T entity, UpdateOptions options)
      インターフェースからコピーされた説明: AsyncCassandraOperations
      WriteOptions を適用する指定されたエンティティを更新し、更新が適用された場合はエンティティを返します。
      次で指定:
      インターフェース AsyncCassandraOperationsupdate 
      パラメーター:
      entity - 更新するエンティティ。null であってはなりません。
      options - null であってはなりません。
      戻り値:
      この操作の EntityWriteResult
      関連事項:
    • delete

      public <T> CompletableFutureSE<T> delete(T entity)
      インターフェースからコピーされた説明: AsyncCassandraOperations
      指定されたエンティティを削除し、削除ステートメントが適用された場合はエンティティを返します。
      次で指定:
      インターフェース AsyncCassandraOperationsdelete 
      パラメーター:
      entity - null であってはなりません。
      戻り値:
      削除されたエンティティ。
    • delete

      public CompletableFutureSE<WriteResult> delete(ObjectSE entity, QueryOptions options)
      インターフェースからコピーされた説明: AsyncCassandraOperations
      QueryOptions を適用する指定されたエンティティを削除し、削除ステートメントが適用された場合はエンティティを返します。
      次で指定:
      インターフェース AsyncCassandraOperationsdelete 
      パラメーター:
      entity - null であってはなりません。
      options - null であってはなりません。
      戻り値:
      この操作の WriteResult
      関連事項:
    • deleteById

      public CompletableFutureSE<BooleanSE> deleteById(ObjectSE id, ClassSE<?> entityClass)
      インターフェースからコピーされた説明: AsyncCassandraOperations
      指定されたオブジェクトを ID によってテーブルから削除します。
      次で指定:
      インターフェース AsyncCassandraOperationsdeleteById 
      パラメーター:
      id - Id 値。単一の主キーの場合はプレーンな値です。複合主キーの場合は PrimaryKeyClass または MapId のいずれかです。null にすることはできません。
      entityClass - エンティティ型は null にできません。
      戻り値:
      削除が適用された場合は true。
    • truncate

      public CompletableFutureSE<VoidSE> truncate(ClassSE<?> entityClass)
      インターフェースからコピーされた説明: AsyncCassandraOperations
      TRUNCATE クエリを実行して、指定されたクラスのすべてのエンティティを削除します。
      次で指定:
      インターフェース AsyncCassandraOperationstruncate 
      パラメーター:
      entityClass - エンティティ型は null にできません。
    • createPreparedStatementHandler

      protected AsyncCassandraTemplate.AsyncPreparedStatementHandler createPreparedStatementHandler(com.datastax.oss.driver.api.core.cql.Statement<?> statement)
      渡されたステートメントを使用して、新しいステートメントベースの AsyncCassandraTemplate.AsyncPreparedStatementHandler を作成します。

      このメソッドを使用すると、サブクラスによって作成をオーバーライドできます。

      パラメーター:
      statement - 準備する声明。
      戻り値:
      新しい AsyncCassandraTemplate.PreparedStatementHandler を使用します。
      導入:
      3.3.3
    • maybeEmitEvent

      protected <E extends CassandraMappingEvent<T>, T> void maybeEmitEvent(SupplierSE<E> event)
    • maybeCallBeforeConvert

      protected <T> T maybeCallBeforeConvert(T object, com.datastax.oss.driver.api.core.CqlIdentifier tableName)
    • maybeCallBeforeSave

      protected <T> T maybeCallBeforeSave(T object, com.datastax.oss.driver.api.core.CqlIdentifier tableName, com.datastax.oss.driver.api.core.cql.Statement<?> statement)