Interface ReactiveCqlOperations

All Known Implementing Classes:
ReactiveCqlTemplate

public interface ReactiveCqlOperations
Interface specifying a basic set of CQL operations executed in a reactive fashion. Implemented by ReactiveCqlTemplate. 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
See Also:
  • Method Details

    • execute

      <T> reactor.core.publisher.Flux<T> execute(ReactiveSessionCallback<T> action) throws DataAccessException
      Execute a CQL data access operation, implemented as callback action working on a ReactiveSession. This allows for implementing arbitrary data access operations, within Spring's managed CQL environment: that is, converting CQL DriverExceptions into Spring's DataAccessException hierarchy.

      The callback action can return a result object, for example a domain object or a collection of domain objects.

      Parameters:
      action - the callback object that specifies the action.
      Returns:
      a result object returned by the action, or null.
      Throws:
      DataAccessException - if there is any problem executing the query.
    • execute

      reactor.core.publisher.Mono<Boolean> execute(String cql) throws DataAccessException
      Issue a single CQL execute, typically a DDL statement, insert, update or delete statement.
      Parameters:
      cql - static CQL to execute, must not be empty or null.
      Returns:
      boolean value whether the statement was applied.
      Throws:
      DataAccessException - if there is any problem executing the query.
    • query

      <T> reactor.core.publisher.Flux<T> query(String cql, ReactiveResultSetExtractor<T> rse) throws DataAccessException
      Execute a query given static CQL, reading the ReactiveResultSet with a ReactiveResultSetExtractor.

      Uses a CQL Statement, not a PreparedStatement. If you want to execute a static query with a PreparedStatement, use the overloaded query method with null as argument array.

      Parameters:
      cql - static CQL to execute, must not be empty or null.
      rse - object that will extract all rows of results, must not be null.
      Returns:
      an arbitrary result object, as returned by the ReactiveResultSetExtractor.
      Throws:
      DataAccessException - if there is any problem executing the query.
      See Also:
    • query

      <T> reactor.core.publisher.Flux<T> query(String cql, RowMapper<T> rowMapper) throws DataAccessException
      Execute a query given static CQL, mapping each row to a Java object via a RowMapper.

      Uses a CQL Statement, not a PreparedStatement. If you want to execute a static query with a PreparedStatement, use the overloaded query method with null as argument array.

      Parameters:
      cql - static CQL to execute, must not be empty or null.
      rowMapper - object that will map one object per row, must not be null.
      Returns:
      the result Flux, containing mapped objects.
      Throws:
      DataAccessException - if there is any problem executing the query.
      See Also:
    • queryForObject

      <T> reactor.core.publisher.Mono<T> queryForObject(String cql, RowMapper<T> rowMapper) throws DataAccessException
      Execute a query given static CQL, mapping a single result row to a Java object via a RowMapper.

      Uses a CQL Statement, not a PreparedStatement. If you want to execute a static query with a PreparedStatement, use the overloaded queryForObject(String, RowMapper, Object...) method with null as argument array.

      Parameters:
      cql - static CQL to execute, must not be empty or null.
      rowMapper - object that will map one object per row, must not be null.
      Returns:
      the single mapped object.
      Throws:
      IncorrectResultSizeDataAccessException - if the query does not return exactly one row.
      DataAccessException - if there is any problem executing the query.
      See Also:
    • queryForObject

      <T> reactor.core.publisher.Mono<T> queryForObject(String cql, Class<T> requiredType) throws DataAccessException
      Execute a query for a result object, given static CQL.

      Uses a CQL Statement, not a PreparedStatement. If you want to execute a static query with a PreparedStatement, use the overloaded queryForObject(String, Class, Object...) method with null as argument array.

      This method is useful for running static CQL with a known outcome. The query is expected to be a single row/single column query; the returned result will be directly mapped to the corresponding object type.

      Parameters:
      cql - static CQL to execute, must not be empty or null.
      requiredType - the type that the result object is expected to match, must not be null.
      Returns:
      the result object of the required type, or Mono.empty() in case of CQL NULL.
      Throws:
      IncorrectResultSizeDataAccessException - if the query does not return exactly one row, or does not return exactly one column in that row.
      DataAccessException - if there is any problem executing the query.
      See Also:
    • queryForMap

      reactor.core.publisher.Mono<Map<String,Object>> queryForMap(String cql) throws DataAccessException
      Execute a query for a result Map, given static CQL.

      Uses a CQL Statement, not a PreparedStatement. If you want to execute a static query with a PreparedStatement, use the overloaded queryForMap(String, Object...) method with null as argument array.

      The query is expected to be a single row query; the result row will be mapped to a Map (one entry for each column, using the column name as the key).

      Parameters:
      cql - static CQL to execute, must not be empty or null.
      Returns:
      the result Map (one entry for each column, using the column name as the key), must not be null.
      Throws:
      IncorrectResultSizeDataAccessException - if the query does not return exactly one row.
      DataAccessException - if there is any problem executing the query.
      See Also:
    • queryForFlux

      <T> reactor.core.publisher.Flux<T> queryForFlux(String cql, Class<T> elementType) throws DataAccessException
      Execute a query for a result Flux, given static CQL.

      Uses a CQL Statement, not a PreparedStatement. If you want to execute a static query with a PreparedStatement, use the overloaded queryForFlux method with null as argument array.

      The results will be mapped to a Flux (one item for each row) of result objects, each of them matching the specified element type.

      Parameters:
      cql - static CQL to execute, must not be empty or null.
      elementType - the required type of element in the result Flux (for example, Integer.class), must not be null.
      Returns:
      a Flux of objects that match the specified element type.
      Throws:
      DataAccessException - if there is any problem executing the query.
      See Also:
    • queryForFlux

      reactor.core.publisher.Flux<Map<String,Object>> queryForFlux(String cql) throws DataAccessException
      Execute a query for a result Flux, given static CQL.

      Uses a CQL Statement, not a PreparedStatement. If you want to execute a static query with a PreparedStatement, use the overloaded queryForFlux method with null as argument array.

      The results will be mapped to a Flux (one item for each row) of Maps (one entry for each column using the column name as the key). Each item in the Flux will be of the form returned by this interface's queryForMap() methods.

      Parameters:
      cql - static CQL to execute, must not be empty or null.
      Returns:
      a Flux that contains a Map per row.
      Throws:
      DataAccessException - if there is any problem executing the query.
      See Also:
    • queryForResultSet

      reactor.core.publisher.Mono<ReactiveResultSet> queryForResultSet(String cql) throws DataAccessException
      Execute a query for a ResultSet, given static CQL.

      Uses a CQL Statement, not a PreparedStatement. If you want to execute a static query with a PreparedStatement, use the overloaded queryForResultSet method with null as argument array.

      The results will be mapped to an ReactiveResultSet.

      Parameters:
      cql - static CQL to execute, must not be empty or null.
      Returns:
      a ReactiveResultSet representation.
      Throws:
      DataAccessException - if there is any problem executing the query.
      See Also:
    • queryForRows

      reactor.core.publisher.Flux<com.datastax.oss.driver.api.core.cql.Row> queryForRows(String cql) throws DataAccessException
      Execute a query for Rows, given static CQL.

      Uses a CQL Statement, not a PreparedStatement. If you want to execute a static query with a PreparedStatement, use the overloaded queryForResultSet method with null as argument array.

      The results will be mapped to Rows.

      Parameters:
      cql - static CQL to execute, must not be empty or null.
      Returns:
      a Row representation.
      Throws:
      DataAccessException - if there is any problem executing the query.
      See Also:
    • execute

      reactor.core.publisher.Flux<Boolean> execute(org.reactivestreams.Publisher<String> statementPublisher) throws DataAccessException
      Issue multiple CQL statements from a CQL statement Publisher.
      Parameters:
      statementPublisher - defining a Publisher of CQL statements that will be executed.
      Returns:
      an array of the number of rows affected by each statement
      Throws:
      DataAccessException - if there is any problem executing the batch.
    • execute

      reactor.core.publisher.Mono<Boolean> execute(com.datastax.oss.driver.api.core.cql.Statement<?> statement) throws DataAccessException
      Issue a single CQL execute, typically a DDL statement, insert, update or delete statement.
      Parameters:
      statement - static CQL Statement, must not be null.
      Returns:
      boolean value whether the statement was applied.
      Throws:
      DataAccessException - if there is any problem executing the query.
    • query

      <T> reactor.core.publisher.Flux<T> query(com.datastax.oss.driver.api.core.cql.Statement<?> statement, ReactiveResultSetExtractor<T> rse) throws DataAccessException
      Execute a query given static CQL, reading the ReactiveResultSet with a ReactiveResultSetExtractor.

      Uses a CQL Statement, not a PreparedStatement. If you want to execute a static query with a PreparedStatement, use the overloaded query method with null as argument array.

      Parameters:
      statement - static CQL Statement, must not be null.
      rse - object that will extract all rows of results, must not be null.
      Returns:
      an arbitrary result object, as returned by the ReactiveResultSetExtractor.
      Throws:
      DataAccessException - if there is any problem executing the query.
      See Also:
    • query

      <T> reactor.core.publisher.Flux<T> query(com.datastax.oss.driver.api.core.cql.Statement<?> statement, RowMapper<T> rowMapper) throws DataAccessException
      Execute a query given static CQL, mapping each row to a Java object via a RowMapper.

      Uses a CQL Statement, not a PreparedStatement. If you want to execute a static query with a PreparedStatement, use the overloaded query method with null as argument array.

      Parameters:
      statement - static CQL Statement, must not be null.
      rowMapper - object that will map one object per row, must not be null.
      Returns:
      the result Flux, containing mapped objects.
      Throws:
      DataAccessException - if there is any problem executing the query.
      See Also:
    • queryForObject

      <T> reactor.core.publisher.Mono<T> queryForObject(com.datastax.oss.driver.api.core.cql.Statement<?> statement, RowMapper<T> rowMapper) throws DataAccessException
      Execute a query given static CQL, mapping a single result row to a Java object via a RowMapper.

      Uses a CQL Statement, not a PreparedStatement. If you want to execute a static query with a PreparedStatement, use the overloaded queryForObject(String, RowMapper, Object...) method with null as argument array.

      Parameters:
      statement - static CQL Statement, must not be null.
      rowMapper - object that will map one object per row, must not be null.
      Returns:
      the single mapped object.
      Throws:
      IncorrectResultSizeDataAccessException - if the query does not return exactly one row.
      DataAccessException - if there is any problem executing the query.
      See Also:
    • queryForObject

      <T> reactor.core.publisher.Mono<T> queryForObject(com.datastax.oss.driver.api.core.cql.Statement<?> statement, Class<T> requiredType) throws DataAccessException
      Execute a query for a result object, given static CQL.

      Uses a CQL Statement, not a PreparedStatement. If you want to execute a static query with a PreparedStatement, use the overloaded queryForObject(String, Class, Object...) method with null as argument array.

      This method is useful for running static CQL with a known outcome. The query is expected to be a single row/single column query; the returned result will be directly mapped to the corresponding object type.

      Parameters:
      statement - static CQL Statement, must not be null.
      requiredType - the type that the result object is expected to match, must not be null.
      Returns:
      the result object of the required type, or Mono.empty() in case of CQL NULL.
      Throws:
      IncorrectResultSizeDataAccessException - if the query does not return exactly one row, or does not return exactly one column in that row.
      DataAccessException - if there is any problem executing the query.
      See Also:
    • queryForMap

      reactor.core.publisher.Mono<Map<String,Object>> queryForMap(com.datastax.oss.driver.api.core.cql.Statement<?> statement) throws DataAccessException
      Execute a query for a result Map, given static CQL.

      Uses a CQL Statement, not a PreparedStatement. If you want to execute a static query with a PreparedStatement, use the overloaded queryForMap(String, Object...) method with null as argument array.

      The query is expected to be a single row query; the result row will be mapped to a Map (one entry for each column, using the column name as the key).

      Parameters:
      statement - static CQL Statement, must not be null.
      Returns:
      the result Map (one entry for each column, using the column name as the key), must not be null.
      Throws:
      IncorrectResultSizeDataAccessException - if the query does not return exactly one row.
      DataAccessException - if there is any problem executing the query.
      See Also:
    • queryForFlux

      <T> reactor.core.publisher.Flux<T> queryForFlux(com.datastax.oss.driver.api.core.cql.Statement<?> statement, Class<T> elementType) throws DataAccessException
      Execute a query for a result Flux, given static CQL.

      Uses a CQL Statement, not a PreparedStatement. If you want to execute a static query with a PreparedStatement, use the overloaded queryForFlux method with null as argument array.

      The results will be mapped to a Flux (one item for each row) of result objects, each of them matching the specified element type.

      Parameters:
      statement - static CQL Statement, must not be null.
      elementType - the required type of element in the result Flux (for example, Integer.class), must not be null.
      Returns:
      a Flux of objects that match the specified element type.
      Throws:
      DataAccessException - if there is any problem executing the query.
      See Also:
    • queryForFlux

      reactor.core.publisher.Flux<Map<String,Object>> queryForFlux(com.datastax.oss.driver.api.core.cql.Statement<?> statement) throws DataAccessException
      Execute a query for a result Flux, given static CQL.

      Uses a CQL Statement, not a PreparedStatement. If you want to execute a static query with a PreparedStatement, use the overloaded queryForFlux method with null as argument array.

      The results will be mapped to a Flux (one item for each row) of Maps (one entry for each column using the column name as the key). Each item in the Flux will be of the form returned by this interface's queryForMap() methods.

      Parameters:
      statement - static CQL Statement, must not be null.
      Returns:
      a Flux that contains a Map per row.
      Throws:
      DataAccessException - if there is any problem executing the query.
      See Also:
    • queryForResultSet

      reactor.core.publisher.Mono<ReactiveResultSet> queryForResultSet(com.datastax.oss.driver.api.core.cql.Statement<?> statement) throws DataAccessException
      Execute a query for a ResultSet, given static CQL.

      Uses a CQL Statement, not a PreparedStatement. If you want to execute a static query with a PreparedStatement, use the overloaded queryForResultSet method with null as argument array.

      The results will be mapped to an ReactiveResultSet.

      Parameters:
      statement - static CQL Statement, must not be null.
      Returns:
      a ReactiveResultSet representation.
      Throws:
      DataAccessException - if there is any problem executing the query.
      See Also:
    • queryForRows

      reactor.core.publisher.Flux<com.datastax.oss.driver.api.core.cql.Row> queryForRows(com.datastax.oss.driver.api.core.cql.Statement<?> statement) throws DataAccessException
      Execute a query for Rows, given static CQL.

      Uses a CQL Statement, not a PreparedStatement. If you want to execute a static query with a PreparedStatement, use the overloaded queryForResultSet method with null as argument array.

      The results will be mapped to Rows.

      Parameters:
      statement - static CQL Statement, must not be null.
      Returns:
      a Row representation.
      Throws:
      DataAccessException - if there is any problem executing the query.
      See Also:
    • execute

      <T> reactor.core.publisher.Flux<T> execute(ReactivePreparedStatementCreator psc, ReactivePreparedStatementCallback<T> action) throws DataAccessException
      Execute a CQL data access operation, implemented as callback action working on a CQL PreparedStatement. This allows for implementing arbitrary data access operations on a single PreparedStatement, within Spring's managed CQL environment: that is, participating in Spring-managed transactions and converting CQL DriverExceptions into Spring's DataAccessException hierarchy.

      The callback action can return a result object, for example a domain object or a collection of domain objects.

      Parameters:
      psc - object that can create a PreparedStatement given a ReactiveSession, must not be null.
      action - callback object that specifies the action, must not be null.
      Returns:
      a result object returned by the action, or null.
      Throws:
      DataAccessException - if there is any problem executing the query.
    • execute

      <T> reactor.core.publisher.Flux<T> execute(String cql, ReactivePreparedStatementCallback<T> action) throws DataAccessException
      Execute a CQL data access operation, implemented as callback action working on a CQL PreparedStatement. This allows for implementing arbitrary data access operations on a single Statement, within Spring's managed CQL environment: that is, participating in Spring-managed transactions and converting CQL DriverExceptions into Spring's DataAccessException hierarchy.

      The callback action can return a result object, for example a domain object or a collection of domain objects.

      Parameters:
      cql - static CQL to execute, must not be empty or null.
      action - callback object that specifies the action, must not be null.
      Returns:
      a result object returned by the action, or null
      Throws:
      DataAccessException - if there is any problem executing the query.
    • query

      <T> reactor.core.publisher.Flux<T> query(ReactivePreparedStatementCreator psc, ReactiveResultSetExtractor<T> rse) throws DataAccessException
      Query using a prepared statement, reading the ReactiveResultSet with a ReactiveResultSetExtractor.
      Parameters:
      psc - object that can create a PreparedStatement given a ReactiveSession, must not be null.
      rse - object that will extract results, must not be null.
      Returns:
      an arbitrary result object, as returned by the ReactiveResultSetExtractor
      Throws:
      DataAccessException - if there is any problem executing the query.
    • query

      <T> reactor.core.publisher.Flux<T> query(String cql, @Nullable PreparedStatementBinder psb, ReactiveResultSetExtractor<T> rse) throws DataAccessException
      Query using a prepared statement, reading the ReactiveResultSet with a ReactiveResultSetExtractor.
      Parameters:
      cql - static CQL to execute, must not be empty or null.
      psb - object that knows how to set values on the prepared statement. If this is null, the CQL will be assumed to contain no bind parameters. Even if there are no bind parameters, this object may be used to set fetch size and other performance options.
      rse - object that will extract results, must not be null.
      Returns:
      an arbitrary result object, as returned by the ReactiveResultSetExtractor.
      Throws:
      DataAccessException - if there is any problem executing the query.
    • query

      <T> reactor.core.publisher.Flux<T> query(ReactivePreparedStatementCreator psc, @Nullable PreparedStatementBinder psb, ReactiveResultSetExtractor<T> rse) throws DataAccessException
      Query using a prepared statement and a PreparedStatementBinder implementation that knows how to bind values to the query, reading the ReactiveResultSet with a ResultSetExtractor.
      Parameters:
      psc - object that can create a PreparedStatement given a CqlSession, must not be null.
      psb - object that knows how to set values on the prepared statement. If this is null, the CQL will be assumed to contain no bind parameters. Even if there are no bind parameters, this object may be used to set fetch size and other performance options.
      rse - object that will extract results, must not be null.
      Returns:
      an arbitrary result object, as returned by the ResultSetExtractor.
      Throws:
      DataAccessException - if there is any problem executing the query.
    • query

      <T> reactor.core.publisher.Flux<T> query(String cql, ReactiveResultSetExtractor<T> rse, Object... args) throws DataAccessException
      Query given CQL to create a prepared statement from CQL and a list of arguments to bind to the query, reading the ReactiveResultSet with a ReactiveResultSetExtractor.
      Parameters:
      cql - static CQL to execute, must not be empty or null.
      rse - object that will extract results, must not be null.
      args - arguments to bind to the query (leaving it to the PreparedStatement to guess the corresponding CQL type).
      Returns:
      an arbitrary result object, as returned by the ReactiveResultSetExtractor
      Throws:
      DataAccessException - if there is any problem executing the query.
    • query

      <T> reactor.core.publisher.Flux<T> query(ReactivePreparedStatementCreator psc, RowMapper<T> rowMapper) throws DataAccessException
      Query using a prepared statement, mapping each row to a Java object via a RowMapper.
      Parameters:
      psc - object that can create a PreparedStatement given a ReactiveSession, must not be null.
      rowMapper - object that will map one object per row, must not be null.
      Returns:
      the result Flux, containing mapped objects.
      Throws:
      DataAccessException - if there is any problem executing the query.
    • query

      <T> reactor.core.publisher.Flux<T> query(String cql, @Nullable PreparedStatementBinder psb, RowMapper<T> rowMapper) throws DataAccessException
      Query given CQL to create a prepared statement from CQL and a PreparedStatementBinder implementation that knows how to bind values to the query, mapping each row to a Java object via a RowMapper.
      Parameters:
      cql - static CQL to execute, must not be empty or null.
      psb - object that knows how to set values on the prepared statement. If this is null, the CQL will be assumed to contain no bind parameters. Even if there are no bind parameters, this object may be used to set fetch size and other performance options.
      rowMapper - object that will map one object per row, must not be null.
      Returns:
      the result Flux, containing mapped objects.
      Throws:
      DataAccessException - if there is any problem executing the query.
    • query

      <T> reactor.core.publisher.Flux<T> query(ReactivePreparedStatementCreator psc, @Nullable PreparedStatementBinder psb, RowMapper<T> rowMapper) throws DataAccessException
      Query using a prepared statement and a PreparedStatementBinder implementation that knows how to bind values to the query, mapping each row to a Java object via a RowMapper.
      Parameters:
      psc - object that can create a PreparedStatement given a CqlSession, must not be null.
      psb - object that knows how to set values on the prepared statement. If this is null, the CQL will be assumed to contain no bind parameters. Even if there are no bind parameters, this object may be used to set fetch size and other performance options.
      rowMapper - object that will map one object per row, must not be null.
      Returns:
      the result Flux, containing mapped objects.
      Throws:
      DataAccessException - if there is any problem executing the query.
    • query

      <T> reactor.core.publisher.Flux<T> query(String cql, RowMapper<T> rowMapper, Object... args) throws DataAccessException
      Query given CQL to create a prepared statement from CQL and a list of arguments to bind to the query, mapping each row to a Java object via a RowMapper.
      Parameters:
      cql - static CQL to execute, must not be empty or null.
      rowMapper - object that will map one object per row
      args - arguments to bind to the query (leaving it to the PreparedStatement to guess the corresponding CQL type)
      Returns:
      the result Flux, containing mapped objects
      Throws:
      DataAccessException - if there is any problem executing the query.
    • queryForObject

      <T> reactor.core.publisher.Mono<T> queryForObject(String cql, RowMapper<T> rowMapper, Object... args) throws DataAccessException
      Query given CQL to create a prepared statement from CQL and a list of arguments to bind to the query, mapping a single result row to a Java object via a RowMapper.
      Parameters:
      cql - static CQL to execute, must not be empty or null.
      rowMapper - object that will map one object per row, must not be null.
      args - arguments to bind to the query (leaving it to the PreparedStatement to guess the corresponding CQL type)
      Returns:
      the single mapped object
      Throws:
      IncorrectResultSizeDataAccessException - if the query does not return exactly one row.
      DataAccessException - if there is any problem executing the query.
    • queryForObject

      <T> reactor.core.publisher.Mono<T> queryForObject(String cql, Class<T> requiredType, Object... args) throws DataAccessException
      Query given CQL to create a prepared statement from CQL and a list of arguments to bind to the query, expecting a result object.

      The query is expected to be a single row/single column query; the returned result will be directly mapped to the corresponding object type.

      Parameters:
      cql - static CQL to execute, must not be empty or null.
      requiredType - the type that the result object is expected to match, must not be null.
      args - arguments to bind to the query (leaving it to the PreparedStatement to guess the corresponding CQL type)
      Returns:
      the result object of the required type, or Mono.empty() in case of CQL NULL.
      Throws:
      IncorrectResultSizeDataAccessException - if the query does not return exactly one row, or does not return exactly one column in that row.
      DataAccessException - if there is any problem executing the query.
      See Also:
    • queryForMap

      reactor.core.publisher.Mono<Map<String,Object>> queryForMap(String cql, Object... args) throws DataAccessException
      Query given CQL to create a prepared statement from CQL and a list of arguments to bind to the query, expecting a result Map. The queryForMap() methods defined by this interface are appropriate when you don't have a domain model. Otherwise, consider using one of the queryForObject() methods.

      The query is expected to be a single row query; the result row will be mapped to a Map (one entry for each column, using the column name as the key).

      Parameters:
      cql - static CQL to execute, must not be empty or null.
      args - arguments to bind to the query (leaving it to the PreparedStatement to guess the corresponding CQL type).
      Returns:
      the result Map (one entry for each column, using the column name as the key).
      Throws:
      IncorrectResultSizeDataAccessException - if the query does not return exactly one row
      DataAccessException - if there is any problem executing the query.
      See Also:
    • queryForFlux

      <T> reactor.core.publisher.Flux<T> queryForFlux(String cql, Class<T> elementType, Object... args) throws DataAccessException
      Query given CQL to create a prepared statement from CQL and a list of arguments to bind to the query, expecting a result Flux.

      The results will be mapped to a Flux (one item for each row) of result objects, each of them matching the specified element type.

      Parameters:
      cql - static CQL to execute, must not be empty or null.
      elementType - the required type of element in the result Flux (for example, Integer.class), must not be null.
      args - arguments to bind to the query (leaving it to the PreparedStatement to guess the corresponding CQL type).
      Returns:
      a Flux of objects that match the specified element type.
      Throws:
      DataAccessException - if there is any problem executing the query.
      See Also:
    • queryForFlux

      reactor.core.publisher.Flux<Map<String,Object>> queryForFlux(String cql, Object... args) throws DataAccessException
      Query given CQL to create a prepared statement from CQL and a list of arguments to bind to the query, expecting a result Flux.

      The results will be mapped to a Flux (one item for each row) of Maps (one entry for each column, using the column name as the key). Each item in the Flux will be of the form returned by this interface's queryForMap() methods.

      Parameters:
      cql - static CQL to execute, must not be empty or null.
      args - arguments to bind to the query (leaving it to the PreparedStatement to guess the corresponding CQL type).
      Returns:
      a Flux that contains a Map per row
      Throws:
      DataAccessException - if there is any problem executing the query.
      See Also:
    • queryForResultSet

      reactor.core.publisher.Mono<ReactiveResultSet> queryForResultSet(String cql, Object... args) throws DataAccessException
      Query given CQL to create a prepared statement from CQL and a list of arguments to bind to the query, expecting a ResultSet.

      The results will be mapped to an ReactiveResultSet.

      Parameters:
      cql - static CQL to execute, must not be empty or null.
      args - arguments to bind to the query (leaving it to the PreparedStatement to guess the corresponding CQL type).
      Returns:
      a ReactiveResultSet representation.
      Throws:
      DataAccessException - if there is any problem executing the query.
      See Also:
    • queryForRows

      reactor.core.publisher.Flux<com.datastax.oss.driver.api.core.cql.Row> queryForRows(String cql, Object... args) throws DataAccessException
      Query given CQL to create a prepared statement from CQL and a list of arguments to bind to the query, expecting Rows.

      The results will be mapped to Rows.

      Parameters:
      cql - static CQL to execute, must not be empty or null.
      args - arguments to bind to the query (leaving it to the PreparedStatement to guess the corresponding CQL type).
      Returns:
      a Row representation.
      Throws:
      DataAccessException - if there is any problem executing the query.
      See Also:
    • execute

      reactor.core.publisher.Mono<Boolean> execute(ReactivePreparedStatementCreator psc) throws DataAccessException
      Issue a single CQL execute operation (such as an insert, update or delete statement) using a ReactivePreparedStatementCreator to provide CQL and any required parameters.
      Parameters:
      psc - object that provides CQL and any necessary parameters, must not be null.
      Returns:
      boolean value whether the statement was applied.
      Throws:
      DataAccessException - if there is any problem issuing the execution.
    • execute

      reactor.core.publisher.Mono<Boolean> execute(String cql, @Nullable PreparedStatementBinder psb) throws DataAccessException
      Issue an statement using a PreparedStatementBinder to set bind parameters, with given CQL. Simpler than using a ReactivePreparedStatementCreator as this method will create the PreparedStatement: The PreparedStatementBinder just needs to set parameters.
      Parameters:
      cql - static CQL to execute, must not be empty or null.
      psb - object that knows how to set values on the prepared statement. If this is null, the CQL will be assumed to contain no bind parameters. Even if there are no bind parameters, this object may be used to set fetch size and other performance options.
      Returns:
      boolean value whether the statement was applied.
      Throws:
      DataAccessException - if there is any problem executing the query.
    • execute

      reactor.core.publisher.Mono<Boolean> execute(String cql, Object... args) throws DataAccessException
      Issue a single CQL operation (such as an insert, update or delete statement) via a prepared statement, binding the given arguments.
      Parameters:
      cql - static CQL to execute, must not be empty or null.
      args - arguments to bind to the query (leaving it to the PreparedStatement to guess the corresponding CQL type).
      Returns:
      boolean value whether the statement was applied.
      Throws:
      DataAccessException - if there is any problem executing the query.
    • execute

      reactor.core.publisher.Flux<Boolean> execute(String cql, org.reactivestreams.Publisher<Object[]> args) throws DataAccessException
      Issue a single CQL operation (such as an insert, update or delete statement) via a prepared statement, binding the given arguments.
      Parameters:
      cql - static CQL to execute containing bind parameters, must not be empty or null.
      args - arguments to bind to the query (leaving it to the PreparedStatement to guess the corresponding CQL type).
      Returns:
      boolean value whether the statement was applied.
      Throws:
      DataAccessException - if there is any problem executing the query.