Interface ReactiveCassandraOperations
- All Superinterfaces:
ReactiveDeleteOperation,ReactiveFluentCassandraOperations,ReactiveInsertOperation,ReactiveSelectOperation,ReactiveUpdateOperation
- All Known Implementing Classes:
ReactiveCassandraTemplate
Interface specifying a basic set of reactive Cassandra operations. Implemented by
ReactiveCassandraTemplate.
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, Hleb Albau, Oleh Dokuka, Sam Lightfoot
- See Also:
-
ReactiveCassandraTemplateReactiveCqlOperationsStatementInsertOptionsUpdateOptionsFluxMono
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.springframework.data.cassandra.core.ReactiveDeleteOperation
ReactiveDeleteOperation.DeleteWithQuery, ReactiveDeleteOperation.DeleteWithTable, ReactiveDeleteOperation.ReactiveDelete, ReactiveDeleteOperation.TerminatingDeleteNested classes/interfaces inherited from interface org.springframework.data.cassandra.core.ReactiveInsertOperation
ReactiveInsertOperation.InsertWithOptions<T>, ReactiveInsertOperation.InsertWithTable<T>, ReactiveInsertOperation.ReactiveInsert<T>, ReactiveInsertOperation.TerminatingInsert<T>Nested classes/interfaces inherited from interface org.springframework.data.cassandra.core.ReactiveSelectOperation
ReactiveSelectOperation.ReactiveSelect<T>, ReactiveSelectOperation.SelectWithProjection<T>, ReactiveSelectOperation.SelectWithQuery<T>, ReactiveSelectOperation.SelectWithTable<T>, ReactiveSelectOperation.TerminatingSelect<T>Nested classes/interfaces inherited from interface org.springframework.data.cassandra.core.ReactiveUpdateOperation
ReactiveUpdateOperation.ReactiveUpdate, ReactiveUpdateOperation.TerminatingUpdate, ReactiveUpdateOperation.UpdateWithQuery, ReactiveUpdateOperation.UpdateWithTable -
Method Summary
Modifier and TypeMethodDescriptiondefault ReactiveCassandraBatchOperationsbatchOps()Returns a newReactiveCassandraBatchOperationsusingBatchType.LOGGED.batchOps(com.datastax.oss.driver.api.core.cql.BatchType batchType) Returns a newReactiveCassandraBatchOperations.reactor.core.publisher.Mono<Long>Returns the number of rows for the given entity class.reactor.core.publisher.Mono<Long>Returns the number of rows for the given entity class applyingQuery.reactor.core.publisher.Mono<WriteResult>delete(Object entity, QueryOptions options) Delete the given entity applyingQueryOptionsand emit the entity if the delete statement was applied.default reactor.core.publisher.Mono<WriteResult>delete(Object entity, DeleteOptions options) Delete the given entity applyingQueryOptionsand emit the entity if the delete statement was applied.reactor.core.publisher.Mono<Boolean>Remove entities (rows)/columns from the table byQuery.<T> reactor.core.publisher.Mono<T>delete(T entity) Delete the given entity and emit the entity if the delete statement was applied.reactor.core.publisher.Mono<Boolean>deleteById(Object id, Class<?> entityClass) Remove the given object from the table by id.reactor.core.publisher.Mono<ReactiveResultSet>execute(com.datastax.oss.driver.api.core.cql.Statement<?> statement) Execute the given CassandraStatement.reactor.core.publisher.Mono<Boolean>Determine whether a row ofentityClasswith the givenidexists.reactor.core.publisher.Mono<Boolean>Determine whether the result forentityClassQueryyields at least one row.Returns the underlyingCassandraConverter.Expose the underlyingReactiveCqlOperationsto allow CQL operations.<T> reactor.core.publisher.Mono<T>insert(T entity) Insert the given entity and emit the entity if the insert was applied.<T> reactor.core.publisher.Mono<EntityWriteResult<T>>insert(T entity, InsertOptions options) Insert the given entity applyingWriteOptionsand emit the entity if the insert was applied.<T> reactor.core.publisher.Flux<T>Execute aSELECTquery and convert the resulting items to a stream of entities.<T> reactor.core.publisher.Flux<T>Execute aSELECTquery and convert the resulting items to a stream of entities.<T> reactor.core.publisher.Flux<T>Execute aSELECTquery and convert the resulting items to a stream of entities.<T> reactor.core.publisher.Mono<T>Execute aSELECTquery and convert the resulting item to an entity.<T> reactor.core.publisher.Mono<T>Execute aSELECTquery and convert the resulting item to an entity.<T> reactor.core.publisher.Mono<T>Execute aSELECTquery and convert the resulting item to an entity.<T> reactor.core.publisher.Mono<T>selectOneById(Object id, Class<T> entityClass) Execute the Select byidfor the givenentityClass.<T> reactor.core.publisher.Mono<Slice<T>>Execute aSELECTquery with paging and convert the result set to aSliceof entities.<T> reactor.core.publisher.Mono<Slice<T>>Execute aSELECTquery with paging and convert the result set to aSliceof entities.reactor.core.publisher.Mono<Void>Execute aTRUNCATEquery to remove all entities of a given class.reactor.core.publisher.Mono<Boolean>Update the queried entities and return true if the update was applied.<T> reactor.core.publisher.Mono<T>update(T entity) Update the given entity and emit the entity if the update was applied.<T> reactor.core.publisher.Mono<EntityWriteResult<T>>update(T entity, UpdateOptions options) Update the given entity applyingWriteOptionsand emit the entity if the update was applied.Methods inherited from interface org.springframework.data.cassandra.core.ReactiveDeleteOperation
deleteMethods inherited from interface org.springframework.data.cassandra.core.ReactiveInsertOperation
insertMethods inherited from interface org.springframework.data.cassandra.core.ReactiveSelectOperation
queryMethods inherited from interface org.springframework.data.cassandra.core.ReactiveUpdateOperation
update
-
Method Details
-
batchOps
Returns a newReactiveCassandraBatchOperationsusingBatchType.LOGGED. EachReactiveCassandraBatchOperationsinstance can be executed only once, so you need to obtain newReactiveCassandraBatchOperationsinstances for each batch.- Returns:
- a new
ReactiveCassandraBatchOperationsassociated with the given entity class. - Since:
- 2.1
- See Also:
-
batchOps
Returns a newReactiveCassandraBatchOperations. EachReactiveCassandraBatchOperationsinstance can be executed only once, so you need to obtain newReactiveCassandraBatchOperationsinstances for each batch.- Parameters:
batchType- must not be null.- Returns:
- a new
ReactiveCassandraBatchOperationsassociated with the given entity class. - Since:
- 3.2.6
-
getReactiveCqlOperations
ReactiveCqlOperations getReactiveCqlOperations()Expose the underlyingReactiveCqlOperationsto allow CQL operations.- Returns:
- the underlying
ReactiveCqlOperations. - See Also:
-
getConverter
CassandraConverter getConverter()Returns the underlyingCassandraConverter.- Returns:
- the underlying
CassandraConverter.
-
select
<T> reactor.core.publisher.Flux<T> select(String cql, Class<T> entityClass) throws DataAccessException Execute aSELECTquery and convert the resulting items to a stream 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 issuing the execution.
-
selectOne
<T> reactor.core.publisher.Mono<T> selectOne(String cql, Class<T> entityClass) throws DataAccessException Execute aSELECTquery and convert the resulting item to an entity.- Parameters:
cql- must not be null.entityClass- The entity type must not be null.- Returns:
- the result object returned by the action or
Mono.empty() - Throws:
DataAccessException- if there is any problem issuing the execution.
-
select
<T> reactor.core.publisher.Flux<T> select(com.datastax.oss.driver.api.core.cql.Statement<?> statement, Class<T> entityClass) throws DataAccessException Execute aSELECTquery and convert the resulting items to a stream of entities.- Parameters:
statement- must not be null.entityClass- The entity type must not be null.- Returns:
- the result objects returned by the action.
- Throws:
DataAccessException- if there is any problem issuing the execution.
-
slice
<T> reactor.core.publisher.Mono<Slice<T>> slice(com.datastax.oss.driver.api.core.cql.Statement<?> statement, Class<T> entityClass) throws DataAccessException Execute aSELECTquery with paging and convert the result set to aSliceof entities. A sliced query translates the effectivefetch sizeto the page size.- Parameters:
statement- the CQL statement, must not be null.entityClass- The entity type must not be null.- Returns:
- the result object returned by the action or
Mono.just(Object)of an emptySlice. - Throws:
DataAccessException- if there is any problem executing the query.- Since:
- 2.1
-
selectOne
<T> reactor.core.publisher.Mono<T> selectOne(com.datastax.oss.driver.api.core.cql.Statement<?> statement, Class<T> entityClass) throws DataAccessException Execute aSELECTquery and convert the resulting item to an entity.- Parameters:
statement- must not be null.entityClass- The entity type must not be null.- Returns:
- the result object returned by the action or
Mono.empty() - Throws:
DataAccessException- if there is any problem issuing the execution.
-
execute
reactor.core.publisher.Mono<ReactiveResultSet> execute(com.datastax.oss.driver.api.core.cql.Statement<?> statement) throws DataAccessException Execute the given CassandraStatement. Any errors that result from executing this command will be converted into Spring's DAO exception hierarchy.- Parameters:
statement- a CassandraStatement, must not be null.- Returns:
- the
ReactiveResultSet. - Throws:
DataAccessException- if there is any problem issuing the execution.- Since:
- 3.2
-
select
<T> reactor.core.publisher.Flux<T> select(Query query, Class<T> entityClass) throws DataAccessException Execute aSELECTquery and convert the resulting items to a stream of entities.- Parameters:
query- must not be null.entityClass- The entity type must not be null.- Returns:
- the result objects returned by the action.
- Throws:
DataAccessException- if there is any problem issuing the execution.
-
slice
<T> reactor.core.publisher.Mono<Slice<T>> slice(Query query, Class<T> entityClass) throws DataAccessException Execute aSELECTquery with paging and convert the result set to aSliceof 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 result object returned by the action or
Mono.just(Object)of an emptySlice. - Throws:
DataAccessException- if there is any problem executing the query.- Since:
- 2.1
- See Also:
-
selectOne
<T> reactor.core.publisher.Mono<T> selectOne(Query query, Class<T> entityClass) throws DataAccessException Execute aSELECTquery and convert the resulting item to an entity.- Parameters:
query- must not be null.entityClass- The entity type must not be null.- Returns:
- the result object returned by the action or
Mono.empty(). - Throws:
DataAccessException- if there is any problem issuing the execution.
-
update
reactor.core.publisher.Mono<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
reactor.core.publisher.Mono<Boolean> delete(Query query, Class<?> entityClass) throws DataAccessException Remove entities (rows)/columns from the table byQuery.- 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 issuing the execution.
-
count
Returns the number of rows for the given entity class.- Parameters:
entityClass-typeof the entity; must not be null.- Returns:
- the number of existing entities.
- Throws:
DataAccessException- if any problem occurs while executing the query.
-
count
reactor.core.publisher.Mono<Long> count(Query query, Class<?> entityClass) throws DataAccessException Returns the number of rows for the given entity class applyingQuery. This overridden method allows users to further refine the selection criteria using aQuerypredicate to determine how many entities of the giventypematch the criteria.- Parameters:
query- user-defined countQueryto execute; must not be null.entityClass-typeof 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
reactor.core.publisher.Mono<Boolean> exists(Object id, Class<?> entityClass) throws DataAccessException Determine whether a row ofentityClasswith the givenidexists.- Parameters:
id- Id value. For single primary keys it's the plain value. For composite primary keys either, it's an instance of eitherPrimaryKeyClassorMapId. Must not be null.entityClass-typeof the entity; must not be null.- Returns:
- true if the object exists.
- Throws:
DataAccessException- if any problem occurs while executing the query.
-
exists
reactor.core.publisher.Mono<Boolean> exists(Query query, Class<?> entityClass) throws DataAccessException Determine whether the result forentityClassQueryyields at least one row.- Parameters:
query- user-defined existsQueryto execute; must not be null.entityClass-typeof 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> reactor.core.publisher.Mono<T> selectOneById(Object id, Class<T> entityClass) throws DataAccessException Execute the Select byidfor the givenentityClass.- Parameters:
id- the Id value. For single primary keys it's the plain value. For composite primary keys either thePrimaryKeyClassorMapId. Must not be null.entityClass- The entity type must not be null.- Returns:
- the result object returned by the action or
Mono.empty() - Throws:
DataAccessException- if there is any problem issuing the execution.
-
insert
Insert the given entity and emit 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 issuing the execution.
-
insert
<T> reactor.core.publisher.Mono<EntityWriteResult<T>> insert(T entity, InsertOptions options) throws DataAccessException Insert the given entity applyingWriteOptionsand emit the entity if the insert was applied.- Parameters:
entity- The entity to insert, must not be null.options- must not be null.- Returns:
- the
EntityWriteResultfor this operation. - Throws:
DataAccessException- if there is any problem issuing the execution.- See Also:
-
update
Update the given entity and emit 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 issuing the execution.
-
update
<T> reactor.core.publisher.Mono<EntityWriteResult<T>> update(T entity, UpdateOptions options) throws DataAccessException Update the given entity applyingWriteOptionsand emit the entity if the update was applied.- Parameters:
entity- The entity to update, must not be null.options- must not be null.- Returns:
- the
EntityWriteResultfor this operation. - Throws:
DataAccessException- if there is any problem issuing the execution.- See Also:
-
delete
Delete the given entity and emit 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 issuing the execution.
-
delete
reactor.core.publisher.Mono<WriteResult> delete(Object entity, QueryOptions options) throws DataAccessException Delete the given entity applyingQueryOptionsand emit the entity if the delete statement was applied.- Parameters:
entity- must not be null.options- must not be null.- Returns:
- the
WriteResultfor this operation. - Throws:
DataAccessException- if there is any problem issuing the execution.- See Also:
-
delete
default reactor.core.publisher.Mono<WriteResult> delete(Object entity, DeleteOptions options) throws DataAccessException Delete the given entity applyingQueryOptionsand emit the entity if the delete statement was applied.- Parameters:
entity- must not be null.options- must not be null.- Returns:
- the
WriteResultfor this operation. - Throws:
DataAccessException- if there is any problem issuing the execution.- Since:
- 2.2
- See Also:
-
deleteById
reactor.core.publisher.Mono<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 thePrimaryKeyClassorMapId. 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 issuing the execution.
-
truncate
Execute aTRUNCATEquery to remove all entities of a given class.- Parameters:
entityClass- The entity type must not be null.- Throws:
DataAccessException- if there is any problem issuing the execution.
-