public class AsyncCqlTemplate extends CassandraAccessor implements AsyncCqlOperations
ResultSets and
catching DriverException exceptions and translating them to the generic, more informative exception hierarchy
defined in the org.springframework.dao package.
Code using this class need only implement callback interfaces, giving them a clearly defined contract. The
PreparedStatementCreator callback interface creates a prepared statement given a Connection, providing CQL
and any necessary parameters. The AsyncResultSetExtractor interface extracts values from a ResultSet.
See also PreparedStatementBinder and RowMapper for two popular alternative callback interfaces.
Can be used within a service implementation via direct instantiation with a CqlSession reference, or get
prepared in an application context and given to services as bean reference. Note: The CqlSession should
always be configured as a bean in the application context, in the first case given to the service directly, in the
second case to the prepared template.
Because this class is parameterizable by the callback interfaces and the
PersistenceExceptionTranslator interface, there should be no need to subclass
it.
All CQL operations performed by this class are logged at debug level, using "org.springframework.data.cassandra.core.cqlTemplate" as log category.
NOTE: An instance of this class is thread-safe once configured.
ListenableFuture,
PreparedStatementCreator,
PreparedStatementBinder,
PreparedStatementCallback,
AsyncResultSetExtractor,
RowCallbackHandler,
RowMapper,
PersistenceExceptionTranslator| Modifier and Type | Class and Description |
|---|---|
protected static class |
AsyncCqlTemplate.AsyncRowCallbackHandlerResultSetExtractor
Adapter to enable use of a
RowCallbackHandler inside a ResultSetExtractor. |
logger| Constructor and Description |
|---|
AsyncCqlTemplate()
Create a new, uninitialized
AsyncCqlTemplate. |
AsyncCqlTemplate(com.datastax.oss.driver.api.core.CqlSession session)
Create a new
AsyncCqlTemplate with the given CqlSession. |
AsyncCqlTemplate(SessionFactory sessionFactory)
Constructs a new
AsyncCqlTemplate with the given SessionFactory. |
| Modifier and Type | Method and Description |
|---|---|
ListenableFuture<Boolean> |
execute(AsyncPreparedStatementCreator preparedStatementCreator)
Issue a single CQL execute operation (such as an insert, update or delete statement) using a
AsyncPreparedStatementCreator to provide CQL and any required parameters. |
<T> ListenableFuture<T> |
execute(AsyncPreparedStatementCreator preparedStatementCreator,
PreparedStatementCallback<T> action)
Execute a CQL data access operation, implemented as callback action working on a CQL
PreparedStatement. |
<T> ListenableFuture<T> |
execute(AsyncSessionCallback<T> action)
Execute a CQL data access operation, implemented as callback action working on a
CqlSession. |
ListenableFuture<Boolean> |
execute(com.datastax.oss.driver.api.core.cql.Statement<?> statement)
Issue a single CQL execute, typically a DDL statement, insert, update or delete statement.
|
ListenableFuture<Boolean> |
execute(String cql)
Issue a single CQL execute, typically a DDL statement, insert, update or delete statement.
|
ListenableFuture<Boolean> |
execute(String cql,
Object... args)
Issue a single CQL operation (such as an insert, update or delete statement) via a prepared statement, binding the
given arguments.
|
ListenableFuture<Boolean> |
execute(String cql,
PreparedStatementBinder psb)
Issue an statement using a
PreparedStatementBinder to set bind parameters, with given CQL. |
<T> ListenableFuture<T> |
execute(String cql,
PreparedStatementCallback<T> action)
Execute a CQL data access operation, implemented as callback action working on a CQL
PreparedStatement. |
protected AsyncPreparedStatementCreator |
newAsyncPreparedStatementCreator(String cql)
Create a new CQL-based
AsyncPreparedStatementCreator using the CQL passed in. |
protected AsyncCqlTemplate.AsyncRowCallbackHandlerResultSetExtractor |
newAsyncResultSetExtractor(RowCallbackHandler rowCallbackHandler)
Constructs a new instance of the
ResultSetExtractor adapting the given RowCallbackHandler. |
protected <T> AsyncRowMapperResultSetExtractor<T> |
newAsyncResultSetExtractor(RowMapper<T> rowMapper)
Constructs a new instance of the
ResultSetExtractor adapting the given RowMapper. |
<T> ListenableFuture<T> |
query(AsyncPreparedStatementCreator preparedStatementCreator,
AsyncResultSetExtractor<T> resultSetExtractor)
Query using a prepared statement, reading the
ResultSet with a AsyncResultSetExtractor. |
<T> ListenableFuture<T> |
query(AsyncPreparedStatementCreator preparedStatementCreator,
PreparedStatementBinder psb,
AsyncResultSetExtractor<T> resultSetExtractor)
Query using a prepared statement and a
PreparedStatementBinder implementation that knows how to bind values
to the query, reading the ResultSet with a AsyncResultSetExtractor. |
ListenableFuture<Void> |
query(AsyncPreparedStatementCreator preparedStatementCreator,
PreparedStatementBinder psb,
RowCallbackHandler rowCallbackHandler)
Query using a prepared statement and a
PreparedStatementBinder implementation that knows how to bind values
to the query, reading the ResultSet on a per-row basis with a RowCallbackHandler. |
<T> ListenableFuture<List<T>> |
query(AsyncPreparedStatementCreator preparedStatementCreator,
PreparedStatementBinder psb,
RowMapper<T> rowMapper)
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. |
ListenableFuture<Void> |
query(AsyncPreparedStatementCreator preparedStatementCreator,
RowCallbackHandler rowCallbackHandler)
Query using a prepared statement, reading the
ResultSet on a per-row basis with a
RowCallbackHandler. |
<T> ListenableFuture<List<T>> |
query(AsyncPreparedStatementCreator preparedStatementCreator,
RowMapper<T> rowMapper)
Query using a prepared statement, mapping each row to a Java object via a
RowMapper. |
<T> ListenableFuture<T> |
query(com.datastax.oss.driver.api.core.cql.Statement<?> statement,
AsyncResultSetExtractor<T> resultSetExtractor)
Execute a query given static CQL, reading the
ResultSet with a AsyncResultSetExtractor. |
ListenableFuture<Void> |
query(com.datastax.oss.driver.api.core.cql.Statement<?> statement,
RowCallbackHandler rowCallbackHandler)
Execute a query given static CQL, reading the
ResultSet on a per-row basis with a
RowCallbackHandler. |
<T> ListenableFuture<List<T>> |
query(com.datastax.oss.driver.api.core.cql.Statement<?> statement,
RowMapper<T> rowMapper)
Execute a query given static CQL, mapping each row to a Java object via a
RowMapper. |
<T> ListenableFuture<T> |
query(String cql,
AsyncResultSetExtractor<T> resultSetExtractor)
Execute a query given static CQL, reading the
ResultSet with a AsyncResultSetExtractor. |
<T> ListenableFuture<T> |
query(String cql,
AsyncResultSetExtractor<T> resultSetExtractor,
Object... args)
Query given CQL to create a prepared statement from CQL and a list of arguments to bind to the query, reading the
ResultSet with a AsyncResultSetExtractor. |
<T> ListenableFuture<T> |
query(String cql,
PreparedStatementBinder psb,
AsyncResultSetExtractor<T> resultSetExtractor)
Query using a prepared statement, reading the
ResultSet with a AsyncResultSetExtractor. |
ListenableFuture<Void> |
query(String cql,
PreparedStatementBinder psb,
RowCallbackHandler rowCallbackHandler)
Query given CQL to create a prepared statement from CQL and a
PreparedStatementBinder implementation that
knows how to bind values to the query, reading the ResultSet on a per-row basis with a
RowCallbackHandler. |
<T> ListenableFuture<List<T>> |
query(String cql,
PreparedStatementBinder psb,
RowMapper<T> rowMapper)
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. |
ListenableFuture<Void> |
query(String cql,
RowCallbackHandler rowCallbackHandler)
Execute a query given static CQL, reading the
ResultSet on a per-row basis with a
RowCallbackHandler. |
ListenableFuture<Void> |
query(String cql,
RowCallbackHandler rowCallbackHandler,
Object... args)
Query given CQL to create a prepared statement from CQL and a list of arguments to bind to the query, reading the
ResultSet on a per-row basis with a RowCallbackHandler. |
<T> ListenableFuture<List<T>> |
query(String cql,
RowMapper<T> rowMapper)
Execute a query given static CQL, mapping each row to a Java object via a
RowMapper. |
<T> ListenableFuture<List<T>> |
query(String cql,
RowMapper<T> rowMapper,
Object... args)
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. |
ListenableFuture<List<Map<String,Object>>> |
queryForList(com.datastax.oss.driver.api.core.cql.Statement<?> statement)
Execute a query for a result
List, given static CQL. |
<T> ListenableFuture<List<T>> |
queryForList(com.datastax.oss.driver.api.core.cql.Statement<?> statement,
Class<T> elementType)
Execute a query for a result
List, given static CQL. |
ListenableFuture<List<Map<String,Object>>> |
queryForList(String cql)
Execute a query for a result
List, given static CQL. |
<T> ListenableFuture<List<T>> |
queryForList(String cql,
Class<T> elementType)
Execute a query for a result
List, given static CQL. |
<T> ListenableFuture<List<T>> |
queryForList(String cql,
Class<T> elementType,
Object... args)
Query given CQL to create a prepared statement from CQL and a list of arguments to bind to the query, expecting a
result
List. |
ListenableFuture<List<Map<String,Object>>> |
queryForList(String cql,
Object... args)
Query given CQL to create a prepared statement from CQL and a list of arguments to bind to the query, expecting a
result
List. |
ListenableFuture<Map<String,Object>> |
queryForMap(com.datastax.oss.driver.api.core.cql.Statement<?> statement)
Execute a query for a result Map, given static CQL.
|
ListenableFuture<Map<String,Object>> |
queryForMap(String cql)
Execute a query for a result Map, given static CQL.
|
ListenableFuture<Map<String,Object>> |
queryForMap(String cql,
Object... args)
Query given CQL to create a prepared statement from CQL and a list of arguments to bind to the query, expecting a
result Map.
|
<T> ListenableFuture<T> |
queryForObject(com.datastax.oss.driver.api.core.cql.Statement<?> statement,
Class<T> requiredType)
Execute a query for a result object, given static CQL.
|
<T> ListenableFuture<T> |
queryForObject(com.datastax.oss.driver.api.core.cql.Statement<?> statement,
RowMapper<T> rowMapper)
Execute a query given static CQL, mapping a single result row to a Java object via a
RowMapper. |
<T> ListenableFuture<T> |
queryForObject(String cql,
Class<T> requiredType)
Execute a query for a result object, given static CQL.
|
<T> ListenableFuture<T> |
queryForObject(String cql,
Class<T> requiredType,
Object... args)
Query given CQL to create a prepared statement from CQL and a list of arguments to bind to the query, expecting a
result object.
|
<T> ListenableFuture<T> |
queryForObject(String cql,
RowMapper<T> rowMapper)
Execute a query given static CQL, mapping a single result row to a Java object via a
RowMapper. |
<T> ListenableFuture<T> |
queryForObject(String cql,
RowMapper<T> rowMapper,
Object... args)
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. |
ListenableFuture<com.datastax.oss.driver.api.core.cql.AsyncResultSet> |
queryForResultSet(com.datastax.oss.driver.api.core.cql.Statement<?> statement)
Execute a query for a ResultSet, given static CQL.
|
ListenableFuture<com.datastax.oss.driver.api.core.cql.AsyncResultSet> |
queryForResultSet(String cql)
Execute a query for a ResultSet, given static CQL.
|
ListenableFuture<com.datastax.oss.driver.api.core.cql.AsyncResultSet> |
queryForResultSet(String cql,
Object... args)
Query given CQL to create a prepared statement from CQL and a list of arguments to bind to the query, expecting a
ResultSet.
|
protected DataAccessException |
translateException(String task,
String cql,
com.datastax.oss.driver.api.core.DriverException ex)
Translate the given
DriverException into a generic DataAccessException. |
protected DataAccessException |
translateExceptionIfPossible(String task,
String cql,
RuntimeException ex)
Translate the given
DriverException into a generic DataAccessException. |
afterPropertiesSet, applyStatementSettings, getConsistencyLevel, getExceptionTranslator, getExecutionProfileResolver, getFetchSize, getKeyspace, getPageSize, getSerialConsistencyLevel, getSession, getSessionFactory, newColumnMapRowMapper, newPreparedStatementBinder, newSingleColumnRowMapper, newStatement, setConsistencyLevel, setExceptionTranslator, setExecutionProfile, setExecutionProfileResolver, setFetchSize, setKeyspace, setPageSize, setSerialConsistencyLevel, setSession, setSessionFactory, toCql, translate, translateExceptionIfPossiblepublic AsyncCqlTemplate()
AsyncCqlTemplate. Note: The SessionFactory has to be set before using
the instance.public AsyncCqlTemplate(com.datastax.oss.driver.api.core.CqlSession session)
AsyncCqlTemplate with the given CqlSession.session - the active Cassandra CqlSession, must not be null.IllegalStateException - if CqlSession is null.public AsyncCqlTemplate(SessionFactory sessionFactory)
AsyncCqlTemplate with the given SessionFactory.sessionFactory - the active Cassandra SessionFactory.SessionFactorypublic <T> ListenableFuture<T> execute(AsyncSessionCallback<T> action) throws DataAccessException
AsyncCqlOperationsCqlSession. 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.
execute in interface AsyncCqlOperationsaction - the callback object that specifies the action.DataAccessException - if there is any problem executing the query.public ListenableFuture<Boolean> execute(String cql) throws DataAccessException
AsyncCqlOperationsexecute in interface AsyncCqlOperationscql - static CQL to execute, must not be null or empty.DataAccessException - if there is any problem executing the query.public <T> ListenableFuture<T> query(String cql, AsyncResultSetExtractor<T> resultSetExtractor) throws DataAccessException
AsyncCqlOperationsResultSet with a AsyncResultSetExtractor.
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.
query in interface AsyncCqlOperationscql - static CQL to execute, must not be null or empty.resultSetExtractor - object that will extract all rows of results, must not be null.DataAccessException - if there is any problem executing the query.AsyncCqlOperations.query(String, AsyncResultSetExtractor, Object...)public ListenableFuture<Void> query(String cql, RowCallbackHandler rowCallbackHandler) throws DataAccessException
AsyncCqlOperationsResultSet on a per-row basis with a
RowCallbackHandler.
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.
query in interface AsyncCqlOperationscql - static CQL to execute, must not be null or empty.rowCallbackHandler - object that will extract results, one row at a time, must not be null.DataAccessException - if there is any problem executing the query.AsyncCqlOperations.query(String, RowCallbackHandler, Object[])public <T> ListenableFuture<List<T>> query(String cql, RowMapper<T> rowMapper) throws DataAccessException
AsyncCqlOperationsRowMapper.
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.
query in interface AsyncCqlOperationscql - static CQL to execute, must not be null or empty.rowMapper - object that will map one object per row, must not be null.List, containing mapped objects.DataAccessException - if there is any problem executing the query.AsyncCqlOperations.query(String, RowMapper, Object[])public ListenableFuture<List<Map<String,Object>>> queryForList(String cql) throws DataAccessException
AsyncCqlOperationsList, given static CQL.
Uses a CQL Statement, not a PreparedStatement. If you want to execute a static query with a
PreparedStatement, use the overloaded queryForList method with null as argument array.
The results will be mapped to a List (one item for each row) of Maps (one entry for each column
using the column name as the key). Each item in the List will be of the form returned by this interface's
queryForMap() methods.
queryForList in interface AsyncCqlOperationscql - static CQL to execute, must not be null or empty.List that contains a Map per row.DataAccessException - if there is any problem executing the query.AsyncCqlOperations.queryForList(String, Object[])public <T> ListenableFuture<List<T>> queryForList(String cql, Class<T> elementType) throws DataAccessException
AsyncCqlOperationsList, given static CQL.
Uses a CQL Statement, not a PreparedStatement. If you want to execute a static query with a
PreparedStatement, use the overloaded queryForList method with null as argument array.
The results will be mapped to a List (one item for each row) of result objects, each of them matching the
specified element type.
queryForList in interface AsyncCqlOperationscql - static CQL to execute, must not be null or empty.elementType - the required type of element in the result List (for example, Integer.class),
must not be null.List of objects that match the specified element type.DataAccessException - if there is any problem executing the query.AsyncCqlOperations.queryForList(String, Class, Object[]),
SingleColumnRowMapperpublic ListenableFuture<Map<String,Object>> queryForMap(String cql) throws DataAccessException
AsyncCqlOperations
Uses a CQL Statement, not a PreparedStatement. If you want to execute a static query with a
PreparedStatement, use the overloaded AsyncCqlOperations.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).
queryForMap in interface AsyncCqlOperationscql - static CQL to execute, must not be null or empty.IncorrectResultSizeDataAccessException - if the query does not return exactly one row.DataAccessException - if there is any problem executing the query.AsyncCqlOperations.queryForMap(String, Object[]),
ColumnMapRowMapperpublic <T> ListenableFuture<T> queryForObject(String cql, Class<T> requiredType) throws DataAccessException
AsyncCqlOperations
Uses a CQL Statement, not a PreparedStatement. If you want to execute a static query with a
PreparedStatement, use the overloaded AsyncCqlOperations.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.
queryForObject in interface AsyncCqlOperationscql - static CQL to execute, must not be null or empty.requiredType - the type that the result object is expected to match, must not be null.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.AsyncCqlOperations.queryForObject(String, Class, Object[])public <T> ListenableFuture<T> queryForObject(String cql, RowMapper<T> rowMapper) throws DataAccessException
AsyncCqlOperationsRowMapper.
Uses a CQL Statement, not a PreparedStatement. If you want to execute a static query with a
PreparedStatement, use the overloaded AsyncCqlOperations.queryForObject(String, RowMapper, Object...) method with
null as argument array.
queryForObject in interface AsyncCqlOperationscql - static CQL to execute, must not be null or empty.rowMapper - object that will map one object per row, must not be null.IncorrectResultSizeDataAccessException - if the query does not return exactly one row.DataAccessException - if there is any problem executing the query.AsyncCqlOperations.queryForObject(String, RowMapper, Object[])public ListenableFuture<com.datastax.oss.driver.api.core.cql.AsyncResultSet> queryForResultSet(String cql) throws DataAccessException
AsyncCqlOperations
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 ResultSet.
queryForResultSet in interface AsyncCqlOperationscql - static CQL to execute, must not be null or empty.ResultSet representation.DataAccessException - if there is any problem executing the query.AsyncCqlOperations.queryForResultSet(String, Object[])public ListenableFuture<Boolean> execute(com.datastax.oss.driver.api.core.cql.Statement<?> statement) throws DataAccessException
AsyncCqlOperationsexecute in interface AsyncCqlOperationsstatement - static CQL Statement, must not be null.DataAccessException - if there is any problem executing the query.public <T> ListenableFuture<T> query(com.datastax.oss.driver.api.core.cql.Statement<?> statement, AsyncResultSetExtractor<T> resultSetExtractor) throws DataAccessException
AsyncCqlOperationsResultSet with a AsyncResultSetExtractor.
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.
query in interface AsyncCqlOperationsstatement - static CQL Statement, must not be null.resultSetExtractor - object that will extract all rows of results, must not be null.DataAccessException - if there is any problem executing the query.AsyncCqlOperations.query(String, AsyncResultSetExtractor, Object...)public ListenableFuture<Void> query(com.datastax.oss.driver.api.core.cql.Statement<?> statement, RowCallbackHandler rowCallbackHandler) throws DataAccessException
AsyncCqlOperationsResultSet on a per-row basis with a
RowCallbackHandler.
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.
query in interface AsyncCqlOperationsstatement - static CQL Statement, must not be null.rowCallbackHandler - object that will extract results, one row at a time, must not be null.DataAccessException - if there is any problem executing the query.AsyncCqlOperations.query(String, RowCallbackHandler, Object[])public <T> ListenableFuture<List<T>> query(com.datastax.oss.driver.api.core.cql.Statement<?> statement, RowMapper<T> rowMapper) throws DataAccessException
AsyncCqlOperationsRowMapper.
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.
query in interface AsyncCqlOperationsstatement - static CQL Statement, must not be null.rowMapper - object that will map one object per row, must not be null.List, containing mapped objects.DataAccessException - if there is any problem executing the query.AsyncCqlOperations.query(String, RowMapper, Object[])public ListenableFuture<List<Map<String,Object>>> queryForList(com.datastax.oss.driver.api.core.cql.Statement<?> statement) throws DataAccessException
AsyncCqlOperationsList, given static CQL.
Uses a CQL Statement, not a PreparedStatement. If you want to execute a static query with a
PreparedStatement, use the overloaded queryForList method with null as argument array.
The results will be mapped to a List (one item for each row) of Maps (one entry for each column
using the column name as the key). Each item in the List will be of the form returned by this interface's
queryForMap() methods.
queryForList in interface AsyncCqlOperationsstatement - static CQL Statement to execute, must not be null or empty.List that contains a Map per row.DataAccessException - if there is any problem executing the query.AsyncCqlOperations.queryForList(String, Object[])public <T> ListenableFuture<List<T>> queryForList(com.datastax.oss.driver.api.core.cql.Statement<?> statement, Class<T> elementType) throws DataAccessException
AsyncCqlOperationsList, given static CQL.
Uses a CQL Statement, not a PreparedStatement. If you want to execute a static query with a
PreparedStatement, use the overloaded queryForList method with null as argument array.
The results will be mapped to a List (one item for each row) of result objects, each of them matching the
specified element type.
queryForList in interface AsyncCqlOperationsstatement - static CQL Statement, must not be null.elementType - the required type of element in the result List (for example, Integer.class),
must not be null.List of objects that match the specified element type.DataAccessException - if there is any problem executing the query.AsyncCqlOperations.queryForList(String, Class, Object[]),
SingleColumnRowMapperpublic ListenableFuture<Map<String,Object>> queryForMap(com.datastax.oss.driver.api.core.cql.Statement<?> statement) throws DataAccessException
AsyncCqlOperations
Uses a CQL Statement, not a PreparedStatement. If you want to execute a static query with a
PreparedStatement, use the overloaded AsyncCqlOperations.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).
queryForMap in interface AsyncCqlOperationsstatement - static CQL Statement, must not be null.IncorrectResultSizeDataAccessException - if the query does not return exactly one row.DataAccessException - if there is any problem executing the query.AsyncCqlOperations.queryForMap(String, Object[]),
ColumnMapRowMapperpublic <T> ListenableFuture<T> queryForObject(com.datastax.oss.driver.api.core.cql.Statement<?> statement, Class<T> requiredType) throws DataAccessException
AsyncCqlOperations
Uses a CQL Statement, not a PreparedStatement. If you want to execute a static query with a
PreparedStatement, use the overloaded AsyncCqlOperations.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.
queryForObject in interface AsyncCqlOperationsstatement - static CQL Statement, must not be null.requiredType - the type that the result object is expected to match, must not be null.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.AsyncCqlOperations.queryForObject(String, Class, Object[])public <T> ListenableFuture<T> queryForObject(com.datastax.oss.driver.api.core.cql.Statement<?> statement, RowMapper<T> rowMapper) throws DataAccessException
AsyncCqlOperationsRowMapper.
Uses a CQL Statement, not a PreparedStatement. If you want to execute a static query with a
PreparedStatement, use the overloaded AsyncCqlOperations.queryForObject(String, RowMapper, Object...) method with
null as argument array.
queryForObject in interface AsyncCqlOperationsstatement - static CQL Statement, must not be null.rowMapper - object that will map one object per row, must not be null.IncorrectResultSizeDataAccessException - if the query does not return exactly one row.DataAccessException - if there is any problem executing the query.AsyncCqlOperations.queryForObject(String, RowMapper, Object[])public ListenableFuture<com.datastax.oss.driver.api.core.cql.AsyncResultSet> queryForResultSet(com.datastax.oss.driver.api.core.cql.Statement<?> statement) throws DataAccessException
AsyncCqlOperations
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 ResultSet.
queryForResultSet in interface AsyncCqlOperationsstatement - static CQL Statement, must not be null.ResultSet representation.DataAccessException - if there is any problem executing the query.AsyncCqlOperations.queryForResultSet(String, Object[])public ListenableFuture<Boolean> execute(AsyncPreparedStatementCreator preparedStatementCreator) throws DataAccessException
AsyncCqlOperationsAsyncPreparedStatementCreator to provide CQL and any required parameters.execute in interface AsyncCqlOperationspreparedStatementCreator - object that provides CQL and any necessary parameters, must not be null.DataAccessException - if there is any problem executing the query.public ListenableFuture<Boolean> execute(String cql, Object... args) throws DataAccessException
AsyncCqlOperationsexecute in interface AsyncCqlOperationscql - static CQL to execute, must not be null or empty.args - arguments to bind to the query (leaving it to the PreparedStatement to guess the corresponding
CQL type).DataAccessException - if there is any problem executing the query.public ListenableFuture<Boolean> execute(String cql, @Nullable PreparedStatementBinder psb) throws DataAccessException
AsyncCqlOperationsPreparedStatementBinder to set bind parameters, with given CQL. Simpler than
using a AsyncPreparedStatementCreator as this method will create the PreparedStatement: The
PreparedStatementBinder just needs to set parameters.execute in interface AsyncCqlOperationscql - static CQL to execute, must not be null or empty.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.DataAccessException - if there is any problem executing the query.public <T> ListenableFuture<T> execute(String cql, PreparedStatementCallback<T> action) throws DataAccessException
AsyncCqlOperationsPreparedStatement.
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.
execute in interface AsyncCqlOperationscql - static CQL to execute, must not be null or empty.action - callback object that specifies the action, must not be null.DataAccessException - if there is any problem executing the query.public <T> ListenableFuture<T> execute(AsyncPreparedStatementCreator preparedStatementCreator, PreparedStatementCallback<T> action) throws DataAccessException
AsyncCqlOperationsPreparedStatement.
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.
execute in interface AsyncCqlOperationspreparedStatementCreator - object that can create a PreparedStatement given a
CqlSession, must not be null.action - callback object that specifies the action, must not be null.DataAccessException - if there is any problem executing the query.public <T> ListenableFuture<T> query(AsyncPreparedStatementCreator preparedStatementCreator, AsyncResultSetExtractor<T> resultSetExtractor) throws DataAccessException
AsyncCqlOperationsResultSet with a AsyncResultSetExtractor.query in interface AsyncCqlOperationspreparedStatementCreator - object that can create a PreparedStatement given a
CqlSession, must not be null.resultSetExtractor - object that will extract results, must not be null.AsyncResultSetExtractorDataAccessException - if there is any problem executing the query.public ListenableFuture<Void> query(AsyncPreparedStatementCreator preparedStatementCreator, RowCallbackHandler rowCallbackHandler) throws DataAccessException
AsyncCqlOperationsResultSet on a per-row basis with a
RowCallbackHandler.query in interface AsyncCqlOperationspreparedStatementCreator - object that can create a PreparedStatement given a
CqlSession, must not be null.rowCallbackHandler - object that will extract results, one row at a time, must not be null.DataAccessException - if there is any problem executing the query.public <T> ListenableFuture<List<T>> query(AsyncPreparedStatementCreator preparedStatementCreator, RowMapper<T> rowMapper) throws DataAccessException
AsyncCqlOperationsRowMapper.query in interface AsyncCqlOperationspreparedStatementCreator - object that can create a PreparedStatement given a
CqlSession, must not be null.rowMapper - object that will map one object per row, must not be null.List, containing mapped objects.DataAccessException - if there is any problem executing the query.public <T> ListenableFuture<T> query(AsyncPreparedStatementCreator preparedStatementCreator, @Nullable PreparedStatementBinder psb, AsyncResultSetExtractor<T> resultSetExtractor) throws DataAccessException
AsyncCqlOperationsPreparedStatementBinder implementation that knows how to bind values
to the query, reading the ResultSet with a AsyncResultSetExtractor.query in interface AsyncCqlOperationspreparedStatementCreator - 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.resultSetExtractor - object that will extract results, must not be null.AsyncResultSetExtractor.DataAccessException - if there is any problem executing the query.public ListenableFuture<Void> query(AsyncPreparedStatementCreator preparedStatementCreator, @Nullable PreparedStatementBinder psb, RowCallbackHandler rowCallbackHandler) throws DataAccessException
AsyncCqlOperationsPreparedStatementBinder implementation that knows how to bind values
to the query, reading the ResultSet on a per-row basis with a RowCallbackHandler.query in interface AsyncCqlOperationspreparedStatementCreator - 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.rowCallbackHandler - object that will extract results, one row at a time, must not be null.DataAccessException - if there is any problem executing the query.public <T> ListenableFuture<List<T>> query(AsyncPreparedStatementCreator preparedStatementCreator, @Nullable PreparedStatementBinder psb, RowMapper<T> rowMapper) throws DataAccessException
AsyncCqlOperationsPreparedStatementBinder implementation that knows how to bind values
to the query, mapping each row to a Java object via a RowMapper.query in interface AsyncCqlOperationspreparedStatementCreator - 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.List, containing mapped objects.DataAccessException - if there is any problem executing the query.public <T> ListenableFuture<T> query(String cql, AsyncResultSetExtractor<T> resultSetExtractor, Object... args) throws DataAccessException
AsyncCqlOperationsResultSet with a AsyncResultSetExtractor.query in interface AsyncCqlOperationscql - static CQL to execute, must not be null or empty.resultSetExtractor - 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).AsyncResultSetExtractorDataAccessException - if there is any problem executing the query.public ListenableFuture<Void> query(String cql, RowCallbackHandler rowCallbackHandler, Object... args) throws DataAccessException
AsyncCqlOperationsResultSet on a per-row basis with a RowCallbackHandler.query in interface AsyncCqlOperationscql - static CQL to execute, must not be null or empty.rowCallbackHandler - object that will extract results, one row at a time, must not be null.args - arguments to bind to the query (leaving it to the PreparedStatement to guess the corresponding
CQL type)DataAccessException - if there is any problem executing the query.public <T> ListenableFuture<List<T>> query(String cql, RowMapper<T> rowMapper, Object... args) throws DataAccessException
AsyncCqlOperationsRowMapper.query in interface AsyncCqlOperationscql - static CQL to execute, must not be null or empty.rowMapper - object that will map one object per rowargs - arguments to bind to the query (leaving it to the PreparedStatement to guess the corresponding
CQL type)List, containing mapped objectsDataAccessException - if there is any problem executing the query.public <T> ListenableFuture<T> query(String cql, @Nullable PreparedStatementBinder psb, AsyncResultSetExtractor<T> resultSetExtractor) throws DataAccessException
AsyncCqlOperationsResultSet with a AsyncResultSetExtractor.query in interface AsyncCqlOperationscql - static CQL to execute, must not be null or empty.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.resultSetExtractor - object that will extract results, must not be null.AsyncResultSetExtractor.DataAccessException - if there is any problem executing the query.public ListenableFuture<Void> query(String cql, @Nullable PreparedStatementBinder psb, RowCallbackHandler rowCallbackHandler) throws DataAccessException
AsyncCqlOperationsPreparedStatementBinder implementation that
knows how to bind values to the query, reading the ResultSet on a per-row basis with a
RowCallbackHandler.query in interface AsyncCqlOperationscql - static CQL to execute, must not be null or empty.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.rowCallbackHandler - object that will extract results, one row at a time, must not be null.DataAccessException - if there is any problem executing the query.public <T> ListenableFuture<List<T>> query(String cql, @Nullable PreparedStatementBinder psb, RowMapper<T> rowMapper) throws DataAccessException
AsyncCqlOperationsPreparedStatementBinder implementation that
knows how to bind values to the query, mapping each row to a Java object via a RowMapper.query in interface AsyncCqlOperationscql - static CQL to execute, must not be null or empty.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.List, containing mapped objects.DataAccessException - if there is any problem executing the query.public ListenableFuture<List<Map<String,Object>>> queryForList(String cql, Object... args) throws DataAccessException
AsyncCqlOperationsList.
The results will be mapped to a List (one item for each row) of Maps (one entry for each column,
using the column name as the key). Each item in the List will be of the form returned by this interface's
queryForMap() methods.
queryForList in interface AsyncCqlOperationscql - static CQL to execute, must not be null or empty.args - arguments to bind to the query (leaving it to the PreparedStatement to guess the corresponding
CQL type).List that contains a Map per rowDataAccessException - if there is any problem executing the query.AsyncCqlOperations.queryForList(String)public <T> ListenableFuture<List<T>> queryForList(String cql, Class<T> elementType, Object... args) throws DataAccessException
AsyncCqlOperationsList.
The results will be mapped to a List (one item for each row) of result objects, each of them matching the
specified element type.
queryForList in interface AsyncCqlOperationscql - static CQL to execute, must not be null or empty.elementType - the required type of element in the result List (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).List of objects that match the specified element type.DataAccessException - if there is any problem executing the query.AsyncCqlOperations.queryForList(String, Class),
SingleColumnRowMapperpublic ListenableFuture<Map<String,Object>> queryForMap(String cql, Object... args) throws DataAccessException
AsyncCqlOperationsThe 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).
queryForMap in interface AsyncCqlOperationscql - static CQL to execute, must not be null or empty.args - arguments to bind to the query (leaving it to the PreparedStatement to guess the corresponding
CQL type).IncorrectResultSizeDataAccessException - if the query does not return exactly one rowDataAccessException - if there is any problem executing the query.AsyncCqlOperations.queryForMap(String),
ColumnMapRowMapperpublic <T> ListenableFuture<T> queryForObject(String cql, Class<T> requiredType, Object... args) throws DataAccessException
AsyncCqlOperationsThe query is expected to be a single row/single column query; the returned result will be directly mapped to the corresponding object type.
queryForObject in interface AsyncCqlOperationscql - static CQL to execute, must not be null or empty.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)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.AsyncCqlOperations.queryForObject(String, Class)public <T> ListenableFuture<T> queryForObject(String cql, RowMapper<T> rowMapper, Object... args) throws DataAccessException
AsyncCqlOperationsRowMapper.queryForObject in interface AsyncCqlOperationscql - static CQL to execute, must not be null or empty.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)IncorrectResultSizeDataAccessException - if the query does not return exactly one row.DataAccessException - if there is any problem executing the query.public ListenableFuture<com.datastax.oss.driver.api.core.cql.AsyncResultSet> queryForResultSet(String cql, Object... args) throws DataAccessException
AsyncCqlOperations
The results will be mapped to an ResultSet.
queryForResultSet in interface AsyncCqlOperationscql - static CQL to execute, must not be null or empty.args - arguments to bind to the query (leaving it to the PreparedStatement to guess the corresponding
CQL type).ResultSet representation.DataAccessException - if there is any problem executing the query.AsyncCqlOperations.queryForResultSet(String)protected DataAccessException translateException(String task, @Nullable String cql, com.datastax.oss.driver.api.core.DriverException ex)
DriverException into a generic DataAccessException.task - readable text describing the task being attemptedcql - CQL query or update that caused the problem (may be null)ex - the offending RuntimeException.FunctionCqlProvider@Nullable protected DataAccessException translateExceptionIfPossible(String task, @Nullable String cql, RuntimeException ex)
DriverException into a generic DataAccessException.task - readable text describing the task being attemptedcql - CQL query or update that caused the problem (may be null)ex - the offending RuntimeException.DataAccessException or null if translation not possible.CqlProviderprotected AsyncPreparedStatementCreator newAsyncPreparedStatementCreator(String cql)
AsyncPreparedStatementCreator using the CQL passed in. By default, we'll create an
SimpleAsyncPreparedStatementCreator. This method allows for the creation to be overridden by subclasses.cql - static CQL to execute, must not be empty or null.AsyncPreparedStatementCreator to useprotected AsyncCqlTemplate.AsyncRowCallbackHandlerResultSetExtractor newAsyncResultSetExtractor(RowCallbackHandler rowCallbackHandler)
ResultSetExtractor adapting the given RowCallbackHandler.rowCallbackHandler - RowCallbackHandler to adapt as a ResultSetExtractor.ResultSetExtractor implementation adapting an instance of the RowCallbackHandler.AsyncCqlTemplate.AsyncRowCallbackHandlerResultSetExtractor,
ResultSetExtractor,
RowCallbackHandlerprotected <T> AsyncRowMapperResultSetExtractor<T> newAsyncResultSetExtractor(RowMapper<T> rowMapper)
ResultSetExtractor adapting the given RowMapper.rowMapper - RowMapper to adapt as a ResultSetExtractor.ResultSetExtractor implementation adapting an instance of the RowMapper.ResultSetExtractor,
RowMapper,
RowMapperResultSetExtractorCopyright © 2011–2021 Pivotal Software, Inc.. All rights reserved.