Interface AsyncCassandraOperations

All Known Implementing Classes:
AsyncCassandraTemplate

public interface AsyncCassandraOperations
Interface specifying a basic set of asynchronous Cassandra operations. Implemented by AsyncCassandraTemplate. Not often used directly, but a useful option to enhance testability, as it can easily be mocked or stubbed.
Since:
2.0
Author:
Mark Paluch, John Blum
See Also:
  • Method Details

    • getAsyncCqlOperations

      AsyncCqlOperations getAsyncCqlOperations()
      Expose the underlying AsyncCqlOperations to allow asynchronous CQL operations.
      Returns:
      the underlying AsyncCqlOperations.
      See Also:
    • getConverter

      CassandraConverter getConverter()
      Returns the underlying CassandraConverter.
      Returns:
      the underlying CassandraConverter.
    • select

      <T> CompletableFuture<List<T>> select(String cql, Class<T> entityClass) throws DataAccessException
      Execute a SELECT query and convert the resulting items to a List of entities.
      Parameters:
      cql - must not be null.
      entityClass - The entity type must not be null.
      Returns:
      the converted results
      Throws:
      DataAccessException - if there is any problem executing the query.
    • select

      <T> CompletableFuture<Void> select(String cql, Consumer<T> entityConsumer, Class<T> entityClass) throws DataAccessException
      Execute a SELECT query and convert the resulting items notifying Consumer for each entity.
      Parameters:
      cql - must not be null.
      entityConsumer - object that will be notified on each entity, one object at a time, must not be null.
      entityClass - The entity type must not be null.
      Returns:
      the completion handle
      Throws:
      DataAccessException - if there is any problem executing the query.
    • selectOne

      <T> CompletableFuture<T> selectOne(String cql, Class<T> entityClass) throws DataAccessException
      Execute a SELECT query and convert the resulting item to an entity.
      Parameters:
      cql - must not be null.
      entityClass - The entity type must not be null.
      Returns:
      the converted object or null.
      Throws:
      DataAccessException - if there is any problem executing the query.
    • execute

      CompletableFuture<com.datastax.oss.driver.api.core.cql.AsyncResultSet> execute(com.datastax.oss.driver.api.core.cql.Statement<?> statement) throws DataAccessException
      Execute the given Cassandra Statement. Any errors that result from executing this command will be converted into Spring's DAO exception hierarchy.
      Parameters:
      statement - a Cassandra Statement, must not be null.
      Returns:
      the AsyncResultSet.
      Throws:
      DataAccessException - if there is any problem executing the query.
      Since:
      3.2
    • select

      <T> CompletableFuture<List<T>> select(com.datastax.oss.driver.api.core.cql.Statement<?> statement, Class<T> entityClass) throws DataAccessException
      Execute a SELECT query and convert the resulting items to a List of entities.
      Parameters:
      statement - must not be null.
      entityClass - The entity type must not be null.
      Returns:
      the converted results
      Throws:
      DataAccessException - if there is any problem executing the query.
    • slice

      <T> CompletableFuture<Slice<T>> slice(com.datastax.oss.driver.api.core.cql.Statement<?> statement, Class<T> entityClass) throws DataAccessException
      Execute a SELECT query with paging and convert the result set to a Slice of entities. A sliced query translates the effective fetch size to the page size.
      Parameters:
      statement - the CQL statement, must not be null.
      entityClass - The entity type must not be null.
      Returns:
      the converted results
      Throws:
      DataAccessException - if there is any problem executing the query.
      See Also:
    • select

      <T> CompletableFuture<Void> select(com.datastax.oss.driver.api.core.cql.Statement<?> statement, Consumer<T> entityConsumer, Class<T> entityClass) throws DataAccessException
      Execute a SELECT query and convert the resulting items notifying Consumer for each entity.
      Parameters:
      statement - must not be null.
      entityConsumer - object that will be notified on each entity, one object at a time, must not be null.
      entityClass - The entity type must not be null.
      Returns:
      the completion handle
      Throws:
      DataAccessException - if there is any problem executing the query.
    • selectOne

      <T> CompletableFuture<T> selectOne(com.datastax.oss.driver.api.core.cql.Statement<?> statement, Class<T> entityClass) throws DataAccessException
      Execute a SELECT query and convert the resulting item to an entity.
      Parameters:
      statement - must not be null.
      entityClass - The entity type must not be null.
      Returns:
      the converted object or null.
      Throws:
      DataAccessException - if there is any problem executing the query.
    • select

      <T> CompletableFuture<List<T>> select(Query query, Class<T> entityClass) throws DataAccessException
      Execute a SELECT query and convert the resulting items to a List of entities.
      Parameters:
      query - must not be null.
      entityClass - The entity type must not be null.
      Returns:
      the converted results
      Throws:
      DataAccessException - if there is any problem executing the query.
    • slice

      <T> CompletableFuture<Slice<T>> slice(Query query, Class<T> entityClass) throws DataAccessException
      Execute a SELECT query with paging and convert the result set to a Slice of entities.
      Parameters:
      query - the query object used to create a CQL statement, must not be null.
      entityClass - The entity type must not be null.
      Returns:
      the converted results
      Throws:
      DataAccessException - if there is any problem executing the query.
      See Also:
    • select

      <T> CompletableFuture<Void> select(Query query, Consumer<T> entityConsumer, Class<T> entityClass) throws DataAccessException
      Execute a SELECT query and convert the resulting items notifying Consumer for each entity.
      Parameters:
      query - must not be null.
      entityConsumer - object that will be notified on each entity, one object at a time, must not be null.
      entityClass - The entity type must not be null.
      Returns:
      the completion handle
      Throws:
      DataAccessException - if there is any problem executing the query.
    • selectOne

      <T> CompletableFuture<T> selectOne(Query query, Class<T> entityClass) throws DataAccessException
      Execute a SELECT query and convert the resulting item to an entity.
      Parameters:
      query - must not be null.
      entityClass - The entity type must not be null.
      Returns:
      the converted object or null.
      Throws:
      DataAccessException - if there is any problem executing the query.
    • update

      CompletableFuture<Boolean> update(Query query, Update update, Class<?> entityClass) throws DataAccessException
      Update the queried entities and return true if the update was applied.
      Parameters:
      query - must not be null.
      update - must not be null.
      entityClass - The entity type must not be null.
      Throws:
      DataAccessException - if there is any problem executing the query.
    • delete

      CompletableFuture<Boolean> delete(Query query, Class<?> entityClass) throws DataAccessException
      Remove entities (rows)/columns from the table by Query.
      Parameters:
      query - must not be null.
      entityClass - The entity type must not be null.
      Returns:
      true if the deletion was applied.
      Throws:
      DataAccessException - if there is any problem executing the query.
    • count

      CompletableFuture<Long> count(Class<?> entityClass) throws DataAccessException
      Returns the number of rows for the given entity class.
      Parameters:
      entityClass - type of the entity; must not be null.
      Returns:
      the number of existing entities.
      Throws:
      DataAccessException - if any problem occurs while executing the query.
    • count

      CompletableFuture<Long> count(Query query, Class<?> entityClass) throws DataAccessException
      Returns the number of rows for the given entity class applying Query. This overridden method allows users to further refine the selection criteria using a Query predicate to determine how many entities of the given type match the criteria.
      Parameters:
      query - user-provided count Query to execute; must not be null.
      entityClass - type of the entity; must not be null.
      Returns:
      the number of existing entities.
      Throws:
      DataAccessException - if any problem occurs while executing the query.
      Since:
      2.1
    • exists

      CompletableFuture<Boolean> exists(Object id, Class<?> entityClass) throws DataAccessException
      Determine whether a row of entityClass with the given id exists.
      Parameters:
      id - Id value. For single primary keys it's the plain value. For composite primary keys either, it's an instance of either PrimaryKeyClass or MapId. Must not be null.
      entityClass - type of the entity; must not be null.
      Returns:
      true if the object exists.
      Throws:
      DataAccessException - if any problem occurs while executing the query.
    • exists

      CompletableFuture<Boolean> exists(Query query, Class<?> entityClass) throws DataAccessException
      Determine whether the result for entityClass Query yields at least one row.
      Parameters:
      query - user-provided exists Query to execute; must not be null.
      entityClass - type of the entity; must not be null.
      Returns:
      true if the object exists.
      Throws:
      DataAccessException - if any problem occurs while executing the query.
      Since:
      2.1
    • selectOneById

      <T> CompletableFuture<T> selectOneById(Object id, Class<T> entityClass) throws DataAccessException
      Execute the Select by id for the given entityClass.
      Parameters:
      id - the Id value. For single primary keys it's the plain value. For composite primary keys either the PrimaryKeyClass or MapId. Must not be null.
      entityClass - The entity type must not be null.
      Returns:
      the converted object or null.
      Throws:
      DataAccessException - if there is any problem executing the query.
    • insert

      <T> CompletableFuture<T> insert(T entity) throws DataAccessException
      Insert the given entity and return the entity if the insert was applied.
      Parameters:
      entity - The entity to insert, must not be null.
      Returns:
      the inserted entity.
      Throws:
      DataAccessException - if there is any problem executing the query.
    • insert

      <T> CompletableFuture<EntityWriteResult<T>> insert(T entity, InsertOptions options) throws DataAccessException
      Insert the given entity applying WriteOptions and return the entity if the insert was applied.
      Parameters:
      entity - The entity to insert, must not be null.
      options - must not be null.
      Returns:
      the EntityWriteResult for this operation.
      Throws:
      DataAccessException - if there is any problem executing the query.
      See Also:
    • update

      <T> CompletableFuture<T> update(T entity) throws DataAccessException
      Update the given entity and return the entity if the update was applied.
      Parameters:
      entity - The entity to update, must not be null.
      Returns:
      the updated entity.
      Throws:
      DataAccessException - if there is any problem executing the query.
    • update

      <T> CompletableFuture<EntityWriteResult<T>> update(T entity, UpdateOptions options) throws DataAccessException
      Update the given entity applying WriteOptions and return the entity if the update was applied.
      Parameters:
      entity - The entity to update, must not be null.
      options - must not be null.
      Returns:
      the EntityWriteResult for this operation.
      Throws:
      DataAccessException - if there is any problem executing the query.
      See Also:
    • delete

      <T> CompletableFuture<T> delete(T entity) throws DataAccessException
      Delete the given entity and return the entity if the delete statement was applied.
      Parameters:
      entity - must not be null.
      Returns:
      the deleted entity.
      Throws:
      DataAccessException - if there is any problem executing the query.
    • delete

      Delete the given entity applying QueryOptions and return the entity if the delete statement was applied.
      Parameters:
      entity - must not be null.
      options - must not be null.
      Returns:
      the WriteResult for this operation.
      Throws:
      DataAccessException - if there is any problem executing the query.
      See Also:
    • delete

      default CompletableFuture<WriteResult> delete(Object entity, DeleteOptions options) throws DataAccessException
      Delete the given entity applying DeleteOptions and return the entity if the delete statement was applied.
      Parameters:
      entity - must not be null.
      options - must not be null.
      Returns:
      the WriteResult for this operation.
      Throws:
      DataAccessException - if there is any problem executing the query.
      Since:
      2.2
      See Also:
    • deleteById

      CompletableFuture<Boolean> deleteById(Object id, Class<?> entityClass) throws DataAccessException
      Remove the given object from the table by id.
      Parameters:
      id - the Id value. For single primary keys it's the plain value. For composite primary keys either the PrimaryKeyClass or MapId. Must not be null.
      entityClass - The entity type must not be null.
      Returns:
      true if the deletion was applied.
      Throws:
      DataAccessException - if there is any problem executing the query.
    • truncate

      CompletableFuture<Void> truncate(Class<?> entityClass) throws DataAccessException
      Execute a TRUNCATE query to remove all entities of a given class.
      Parameters:
      entityClass - The entity type must not be null.
      Throws:
      DataAccessException - if there is any problem executing the query.