Class ReactiveAerospikeTemplate
- All Implemented Interfaces:
ReactiveAerospikeOperations
ReactiveAerospikeOperations.- Author:
- Igor Ermolenko, Volodymyr Shpynta, Yevhen Tsyba
-
Constructor Summary
ConstructorsConstructorDescriptionReactiveAerospikeTemplate(com.aerospike.client.reactor.IAerospikeReactorClient reactorClient, String namespace, MappingAerospikeConverter converter, AerospikeMappingContext mappingContext, AerospikeExceptionTranslator exceptionTranslator, ReactorQueryEngine queryEngine, ReactorIndexRefresher reactorIndexRefresher) -
Method Summary
Modifier and TypeMethodDescription<T> reactor.core.publisher.Mono<T>Reactively add integer/double bin value to existing document bin value, read the new modified document and map it back the given document class type.<T> reactor.core.publisher.Mono<T>Reactively add integer/double bin values to existing document bin values, read the new modified document and map it back the given document class type.<T> reactor.core.publisher.Mono<T>Reactively append bin string value to existing document bin value, read the new modified document and map it back the given document class type.<T> reactor.core.publisher.Mono<T>Reactively append bin string values to existing document bin values, read the new modified document and map it back the given document class type.<T> reactor.core.publisher.Mono<Long>Reactively return the amount of documents in the given entityClass's Aerospike set.reactor.core.publisher.Mono<Long>Reactively return the amount of documents in the given Aerospike set.<T> reactor.core.publisher.Mono<Long>Reactively return the amount of documents in a query results. set name will be determined by the given entityClass.<T> reactor.core.publisher.Mono<Void>createIndex(Class<T> entityClass, String indexName, String binName, com.aerospike.client.query.IndexType indexType) Reactively create index by specified name in Aerospike.<T> reactor.core.publisher.Mono<Void>createIndex(Class<T> entityClass, String indexName, String binName, com.aerospike.client.query.IndexType indexType, com.aerospike.client.query.IndexCollectionType indexCollectionType) Reactively create index by specified name in Aerospike.<T> reactor.core.publisher.Mono<Void>createIndex(Class<T> entityClass, String indexName, String binName, com.aerospike.client.query.IndexType indexType, com.aerospike.client.query.IndexCollectionType indexCollectionType, com.aerospike.client.cdt.CTX... ctx) Reactively create index by specified name in Aerospike.<T> reactor.core.publisher.Mono<Void>Reactively truncate/delete all the documents in the given entity's set.<T> reactor.core.publisher.Mono<Boolean>Reactively delete document by id, set name will be determined by the given entityClass.<T> reactor.core.publisher.Mono<Boolean>delete(T document) Reactively delete document.<T> reactor.core.publisher.Mono<Void>deleteIndex(Class<T> entityClass, String indexName) Reactively delete index by specified name from Aerospike.<T> reactor.core.publisher.Mono<T>Reactively execute operation against underlying store.<T> reactor.core.publisher.Mono<Boolean>Reactively check if document exists by providing document id and entityClass (set name will be determined by the given entityClass).<T> reactor.core.publisher.Flux<T>Reactively find documents in the given entityClass's set using a query and map them to the given class type.<T,S> reactor.core.publisher.Flux<S> Reactively find documents in the given entityClass's set using a query and map them to the given target class type.<T> reactor.core.publisher.Flux<T>Reactively find all documents in the given entityClass's set and map them to the given class type.<T,S> reactor.core.publisher.Flux<S> Reactively find all documents in the given entityClass's set and map them to the given target class type.<T> reactor.core.publisher.Flux<T>Reactively find all documents in the given entityClass's set using a provided sort and map them to the given class type.<T,S> reactor.core.publisher.Flux<S> Reactively find all documents in the given entityClass's set using a provided sort and map them to the given target class type.<T> reactor.core.publisher.Mono<T>Reactively find a document by id, set name will be determined by the given entityClass.<T,S> reactor.core.publisher.Mono<S> Reactively find a document by id, set name will be determined by the given entityClass.<T> reactor.core.publisher.Flux<T>Reactively find documents by providing multiple ids using a single batch read operation, set name will be determined by the given entityClass.<T,S> reactor.core.publisher.Flux<S> Reactively find documents by providing multiple ids using a single batch read operation, set name will be determined by the given entityClass.reactor.core.publisher.Mono<GroupedEntities>findByIds(GroupedKeys groupedKeys) Reactively executes a single batch request to get results for several entities.<T> reactor.core.publisher.Flux<T>findInRange(long offset, long limit, Sort sort, Class<T> entityClass) Reactively find documents in the given entityClass's set using a range (offset, limit) and a sort and map them to the given class type.<T,S> reactor.core.publisher.Flux<S> findInRange(long offset, long limit, Sort sort, Class<T> entityClass, Class<S> targetClass) Reactively find documents in the given entityClass's set using a range (offset, limit) and a sort and map them to the given target class type.com.aerospike.client.reactor.IAerospikeReactorClientMappingContext<?,?> <T> StringgetSetName(Class<T> entityClass) reactor.core.publisher.Mono<Boolean>indexExists(String indexName) Check whether an index with the specified name exists in Aerospike.<T> reactor.core.publisher.Mono<T>insert(T document) Reactively insert document usingRecordExistsAction.CREATE_ONLYpolicy.<T> reactor.core.publisher.Flux<T>insertAll(Collection<? extends T> documents) Reactively insert each document of the given documents using single insert operations.<T> reactor.core.publisher.Mono<T>Reactively prepend bin string value to existing document bin value, read the new modified document and map it back the given document class type.<T> reactor.core.publisher.Mono<T>Reactively prepend bin string values to existing document bin values, read the new modified document and map it back the given document class type.<T> reactor.core.publisher.Mono<T>save(T document) Reactively save document.<T> reactor.core.publisher.Mono<T>update(T document) Reactively update document usingRecordExistsAction.UPDATE_ONLYpolicy combined with removing bins at first (analogous toRecordExistsAction.REPLACE_ONLY) taking into consideration the version property of the document if it is present.<T> reactor.core.publisher.Mono<T>update(T document, Collection<String> fields) Reactively update document specific fields based on a given collection of fields. usingRecordExistsAction.UPDATE_ONLYpolicy - You can instantiate the document with only relevant fields and specify the list of fields that you want to update. taking into consideration the version property of the document if it is present.Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.springframework.data.aerospike.core.ReactiveAerospikeOperations
getMappingContext
-
Constructor Details
-
ReactiveAerospikeTemplate
public ReactiveAerospikeTemplate(com.aerospike.client.reactor.IAerospikeReactorClient reactorClient, String namespace, MappingAerospikeConverter converter, AerospikeMappingContext mappingContext, AerospikeExceptionTranslator exceptionTranslator, ReactorQueryEngine queryEngine, ReactorIndexRefresher reactorIndexRefresher)
-
-
Method Details
-
save
public <T> reactor.core.publisher.Mono<T> save(T document) Description copied from interface:ReactiveAerospikeOperationsReactively save document.If document has version property - CAS algorithm is used for updating record. Version property is used for deciding whether to create new record or update existing. If version is set to zero - new record will be created, creation will fail is such record already exists. If version is greater than zero - existing record will be updated with
RecordExistsAction.UPDATE_ONLYpolicy combined with removing bins at first (analogous toRecordExistsAction.REPLACE_ONLY) taking into consideration the version property of the document. Version property will be updated with the server's version after successful operation.If document does not have version property - record is updated with
RecordExistsAction.UPDATEpolicy combined with removing bins at first (analogous toRecordExistsAction.REPLACE). This means that when such record does not exist it will be created, otherwise updated - an "upsert".- Specified by:
savein interfaceReactiveAerospikeOperations- Parameters:
document- The document to save. Must not be null.- Returns:
- A Mono of the new saved document.
-
insertAll
Description copied from interface:ReactiveAerospikeOperationsReactively insert each document of the given documents using single insert operations.- Specified by:
insertAllin interfaceReactiveAerospikeOperations- Parameters:
documents- The documents to insert. Must not be null.- Returns:
- A Flux of the new inserted documents.
-
insert
public <T> reactor.core.publisher.Mono<T> insert(T document) Description copied from interface:ReactiveAerospikeOperationsReactively insert document usingRecordExistsAction.CREATE_ONLYpolicy.If document has version property it will be updated with the server's version after successful operation.
- Specified by:
insertin interfaceReactiveAerospikeOperations- Parameters:
document- The document to insert. Must not be null.- Returns:
- A Mono of the new inserted document.
-
update
public <T> reactor.core.publisher.Mono<T> update(T document) Description copied from interface:ReactiveAerospikeOperationsReactively update document usingRecordExistsAction.UPDATE_ONLYpolicy combined with removing bins at first (analogous toRecordExistsAction.REPLACE_ONLY) taking into consideration the version property of the document if it is present.If document has version property it will be updated with the server's version after successful operation.
- Specified by:
updatein interfaceReactiveAerospikeOperations- Parameters:
document- The document to update. Must not be null.- Returns:
- A Mono of the new updated document.
-
update
Description copied from interface:ReactiveAerospikeOperationsReactively update document specific fields based on a given collection of fields. usingRecordExistsAction.UPDATE_ONLYpolicy - You can instantiate the document with only relevant fields and specify the list of fields that you want to update. taking into consideration the version property of the document if it is present.If document has version property it will be updated with the server's version after successful operation.
- Specified by:
updatein interfaceReactiveAerospikeOperations- Parameters:
document- The document to update. Must not be null.- Returns:
- A Mono of the new updated document.
-
findAll
Description copied from interface:ReactiveAerospikeOperationsReactively find all documents in the given entityClass's set and map them to the given class type.- Specified by:
findAllin interfaceReactiveAerospikeOperations- Parameters:
entityClass- The class to extract the Aerospike set from and to map the documents to. Must not be null.- Returns:
- A Flux of matching documents, returned documents will be mapped to entityClass's type.
-
findAll
Description copied from interface:ReactiveAerospikeOperationsReactively find all documents in the given entityClass's set and map them to the given target class type.- Specified by:
findAllin interfaceReactiveAerospikeOperations- Parameters:
entityClass- The class to extract the Aerospike set from. Must not be null.targetClass- The class to map the document to. Must not be null.- Returns:
- A Flux of matching documents, returned documents will be mapped to targetClass's type.
-
findAll
public <T> reactor.core.publisher.Flux<T> findAll(Sort sort, long offset, long limit, Class<T> entityClass) Description copied from interface:ReactiveAerospikeOperationsReactively find all documents in the given entityClass's set using a provided sort and map them to the given class type.- Specified by:
findAllin interfaceReactiveAerospikeOperations- Parameters:
sort- The sort to affect the returned iterable documents order.offset- The offset to start the range from.limit- The limit of the range.entityClass- The class to extract the Aerospike set from and to map the documents to.- Returns:
- A Flux of matching documents, returned documents will be mapped to entityClass's type.
-
findAll
public <T,S> reactor.core.publisher.Flux<S> findAll(Sort sort, long offset, long limit, Class<T> entityClass, Class<S> targetClass) Description copied from interface:ReactiveAerospikeOperationsReactively find all documents in the given entityClass's set using a provided sort and map them to the given target class type.- Specified by:
findAllin interfaceReactiveAerospikeOperations- Parameters:
sort- The sort to affect the returned iterable documents order.offset- The offset to start the range from.limit- The limit of the range.entityClass- The class to extract the Aerospike set from.targetClass- The class to map the document to. Must not be null.- Returns:
- A Flux of matching documents, returned documents will be mapped to targetClass's type.
-
add
Description copied from interface:ReactiveAerospikeOperationsReactively add integer/double bin values to existing document bin values, read the new modified document and map it back the given document class type.- Specified by:
addin interfaceReactiveAerospikeOperations- Parameters:
document- The document to extract the Aerospike set from and to map the documents to. Must not be null.values- a Map of bin names and values to add. Must not be null.- Returns:
- A Mono of the modified document after add operations.
-
add
Description copied from interface:ReactiveAerospikeOperationsReactively add integer/double bin value to existing document bin value, read the new modified document and map it back the given document class type.- Specified by:
addin interfaceReactiveAerospikeOperations- Parameters:
document- The document to extract the Aerospike set from and to map the documents to. Must not be null.binName- Bin name to use add operation on. Must not be null.value- The value to add.- Returns:
- A Mono of the modified document after add operation.
-
append
Description copied from interface:ReactiveAerospikeOperationsReactively append bin string values to existing document bin values, read the new modified document and map it back the given document class type.- Specified by:
appendin interfaceReactiveAerospikeOperations- Parameters:
document- The document to extract the Aerospike set from and to map the documents to. Must not be null.values- a Map of bin names and values to append. Must not be null.- Returns:
- A Mono of the modified document after append operations.
-
append
Description copied from interface:ReactiveAerospikeOperationsReactively append bin string value to existing document bin value, read the new modified document and map it back the given document class type.- Specified by:
appendin interfaceReactiveAerospikeOperations- Parameters:
document- The document to extract the Aerospike set from and to map the documents to. Must not be null.binName- Bin name to use append operation on.value- The value to append.- Returns:
- A Mono of the modified document after append operation.
-
prepend
Description copied from interface:ReactiveAerospikeOperationsReactively prepend bin string values to existing document bin values, read the new modified document and map it back the given document class type.- Specified by:
prependin interfaceReactiveAerospikeOperations- Parameters:
document- The document to extract the Aerospike set from and to map the documents to. Must not be null.values- a Map of bin names and values to prepend. Must not be null.- Returns:
- A Mono of the modified document after prepend operations.
-
prepend
Description copied from interface:ReactiveAerospikeOperationsReactively prepend bin string value to existing document bin value, read the new modified document and map it back the given document class type.- Specified by:
prependin interfaceReactiveAerospikeOperations- Parameters:
document- The document to extract the Aerospike set from and to map the documents to. Must not be null.binName- Bin name to use prepend operation on.value- The value to prepend.- Returns:
- A Mono of the modified document after prepend operation.
-
findById
Description copied from interface:ReactiveAerospikeOperationsReactively find a document by id, set name will be determined by the given entityClass.Document will be mapped to the given entityClass.
- Specified by:
findByIdin interfaceReactiveAerospikeOperations- Parameters:
id- The id of the document to find. Must not be null.entityClass- The class to extract the Aerospike set from and to map the document to. Must not be null.- Returns:
- A Mono of the matching document, returned document will be mapped to entityClass's type.
-
findById
public <T,S> reactor.core.publisher.Mono<S> findById(Object id, Class<T> entityClass, Class<S> targetClass) Description copied from interface:ReactiveAerospikeOperationsReactively find a document by id, set name will be determined by the given entityClass.Document will be mapped to the given targetClass.
- Specified by:
findByIdin interfaceReactiveAerospikeOperations- Parameters:
id- The id of the document to find. Must not be null.entityClass- The class to extract the Aerospike set from. Must not be null.targetClass- The class to map the document to. Must not be null.- Returns:
- A Mono of the matching document, returned document will be mapped to targetClass's type.
-
findByIds
Description copied from interface:ReactiveAerospikeOperationsReactively find documents by providing multiple ids using a single batch read operation, set name will be determined by the given entityClass.Documents will be mapped to the given entityClass.
- Specified by:
findByIdsin interfaceReactiveAerospikeOperations- Parameters:
ids- The ids of the documents to find. Must not be null.entityClass- The class to extract the Aerospike set from and to map the documents to. Must not be null.- Returns:
- A Flux of matching documents, returned documents will be mapped to entityClass's type.
-
findByIds
public <T,S> reactor.core.publisher.Flux<S> findByIds(Iterable<?> ids, Class<T> entityClass, Class<S> targetClass) Description copied from interface:ReactiveAerospikeOperationsReactively find documents by providing multiple ids using a single batch read operation, set name will be determined by the given entityClass.Documents will be mapped to the given targetClass.
- Specified by:
findByIdsin interfaceReactiveAerospikeOperations- Parameters:
ids- The ids of the documents to find. Must not be null.entityClass- The class to extract the Aerospike set from. Must not be null.targetClass- The class to map the document to. Must not be null.- Returns:
- A Flux of matching documents, returned documents will be mapped to targetClass's type.
-
findByIds
Description copied from interface:ReactiveAerospikeOperationsReactively executes a single batch request to get results for several entities.Aerospike provides functionality to get documents from different sets in 1 batch request. The methods allow to put grouped keys by entity type as parameter and get result as spring data aerospike entities grouped by entity type.
- Specified by:
findByIdsin interfaceReactiveAerospikeOperations- Parameters:
groupedKeys- Must not be null.- Returns:
- Mono of grouped entities.
-
find
Description copied from interface:ReactiveAerospikeOperationsReactively find documents in the given entityClass's set using a query and map them to the given class type.- Specified by:
findin interfaceReactiveAerospikeOperations- Parameters:
query- The query to filter results. Must not be null.entityClass- The class to extract the Aerospike set from and to map the documents to. Must not be null.- Returns:
- A Flux of matching documents, returned documents will be mapped to entityClass's type.
-
find
public <T,S> reactor.core.publisher.Flux<S> find(Query query, Class<T> entityClass, Class<S> targetClass) Description copied from interface:ReactiveAerospikeOperationsReactively find documents in the given entityClass's set using a query and map them to the given target class type.- Specified by:
findin interfaceReactiveAerospikeOperations- Parameters:
query- The query to filter results. Must not be null.entityClass- The class to extract the Aerospike set from. Must not be null.targetClass- The class to map the document to. Must not be null.- Returns:
- A Flux of matching documents, returned documents will be mapped to targetClass's type.
-
findInRange
public <T> reactor.core.publisher.Flux<T> findInRange(long offset, long limit, Sort sort, Class<T> entityClass) Description copied from interface:ReactiveAerospikeOperationsReactively find documents in the given entityClass's set using a range (offset, limit) and a sort and map them to the given class type.- Specified by:
findInRangein interfaceReactiveAerospikeOperations- Parameters:
offset- The offset to start the range from.limit- The limit of the range.sort- The sort to affect the order of the returned Stream of documents.entityClass- The class to extract the Aerospike set from and to map the documents to. Must not be null.- Returns:
- A Flux of matching documents, returned documents will be mapped to entityClass's type.
-
findInRange
public <T,S> reactor.core.publisher.Flux<S> findInRange(long offset, long limit, Sort sort, Class<T> entityClass, Class<S> targetClass) Description copied from interface:ReactiveAerospikeOperationsReactively find documents in the given entityClass's set using a range (offset, limit) and a sort and map them to the given target class type.- Specified by:
findInRangein interfaceReactiveAerospikeOperations- Parameters:
offset- The offset to start the range from.limit- The limit of the range.sort- The sort to affect the returned Stream of documents order.entityClass- The class to extract the Aerospike set from. Must not be null.targetClass- The class to map the document to. Must not be null.- Returns:
- A Flux of matching documents, returned documents will be mapped to targetClass's type.
-
count
Description copied from interface:ReactiveAerospikeOperationsReactively return the amount of documents in a query results. set name will be determined by the given entityClass.- Specified by:
countin interfaceReactiveAerospikeOperations- Parameters:
query- The query that provides the result set for count.entityClass- entityClass The class to extract the Aerospike set from. Must not be null.- Returns:
- A Mono of the amount of documents that the given query and entity class supplied.
-
count
Description copied from interface:ReactiveAerospikeOperationsReactively return the amount of documents in the given Aerospike set.- Specified by:
countin interfaceReactiveAerospikeOperations- Parameters:
setName- The name of the set to count. Must not be null.- Returns:
- A Mono of the amount of documents in the given set.
-
count
Description copied from interface:ReactiveAerospikeOperationsReactively return the amount of documents in the given entityClass's Aerospike set.- Specified by:
countin interfaceReactiveAerospikeOperations- Parameters:
entityClass- The class to extract the Aerospike set from. Must not be null.- Returns:
- A Mono of the amount of documents in the set (of the given entityClass).
-
execute
Description copied from interface:ReactiveAerospikeOperationsReactively execute operation against underlying store.- Specified by:
executein interfaceReactiveAerospikeOperations- Parameters:
supplier- must not be null.- Returns:
- A Mono of the execution result.
-
exists
Description copied from interface:ReactiveAerospikeOperationsReactively check if document exists by providing document id and entityClass (set name will be determined by the given entityClass).- Specified by:
existsin interfaceReactiveAerospikeOperations- Parameters:
id- The id to check if exists. Must not be null.entityClass- The class to extract the Aerospike set from. Must not be null.- Returns:
- A Mono of whether the document exists.
-
delete
Description copied from interface:ReactiveAerospikeOperationsReactively truncate/delete all the documents in the given entity's set.- Specified by:
deletein interfaceReactiveAerospikeOperations- Parameters:
entityClass- The class to extract the Aerospike set from. Must not be null.
-
delete
Description copied from interface:ReactiveAerospikeOperationsReactively delete document by id, set name will be determined by the given entityClass.- Specified by:
deletein interfaceReactiveAerospikeOperations- Parameters:
id- The id of the document to delete. Must not be null.entityClass- The class to extract the Aerospike set from. Must not be null.- Returns:
- A Mono of whether the document existed on server before deletion.
-
delete
Description copied from interface:ReactiveAerospikeOperationsReactively delete document.- Specified by:
deletein interfaceReactiveAerospikeOperations- Parameters:
document- The document to delete. Must not be null.- Returns:
- A Mono of whether the document existed on server before deletion.
-
createIndex
public <T> reactor.core.publisher.Mono<Void> createIndex(Class<T> entityClass, String indexName, String binName, com.aerospike.client.query.IndexType indexType) Description copied from interface:ReactiveAerospikeOperationsReactively create index by specified name in Aerospike.- Specified by:
createIndexin interfaceReactiveAerospikeOperations- Parameters:
entityClass- The class to extract the Aerospike set from. Must not be null.indexName- The index name. Must not be null.binName- The bin name to create the index on. Must not be null.indexType- The type of the index. Must not be null.
-
createIndex
public <T> reactor.core.publisher.Mono<Void> createIndex(Class<T> entityClass, String indexName, String binName, com.aerospike.client.query.IndexType indexType, com.aerospike.client.query.IndexCollectionType indexCollectionType) Description copied from interface:ReactiveAerospikeOperationsReactively create index by specified name in Aerospike.- Specified by:
createIndexin interfaceReactiveAerospikeOperations- Parameters:
entityClass- The class to extract the Aerospike set from. Must not be null.indexName- The index name. Must not be null.binName- The bin name to create the index on. Must not be null.indexType- The type of the index. Must not be null.indexCollectionType- The collection type of the index. Must not be null.
-
createIndex
public <T> reactor.core.publisher.Mono<Void> createIndex(Class<T> entityClass, String indexName, String binName, com.aerospike.client.query.IndexType indexType, com.aerospike.client.query.IndexCollectionType indexCollectionType, com.aerospike.client.cdt.CTX... ctx) Description copied from interface:ReactiveAerospikeOperationsReactively create index by specified name in Aerospike.- Specified by:
createIndexin interfaceReactiveAerospikeOperations- Parameters:
entityClass- The class to extract the Aerospike set from. Must not be null.indexName- The index name. Must not be null.binName- The bin name to create the index on. Must not be null.indexType- The type of the index. Must not be null.indexCollectionType- The collection type of the index. Must not be null.ctx- optional context to index on elements within a CDT.
-
deleteIndex
Description copied from interface:ReactiveAerospikeOperationsReactively delete index by specified name from Aerospike.- Specified by:
deleteIndexin interfaceReactiveAerospikeOperations- Parameters:
entityClass- The class to extract the Aerospike set from. Must not be null.indexName- The index name. Must not be null.
-
indexExists
Description copied from interface:ReactiveAerospikeOperationsCheck whether an index with the specified name exists in Aerospike.- Specified by:
indexExistsin interfaceReactiveAerospikeOperations- Parameters:
indexName- The Aerospike index name. Must not be null.- Returns:
- true if exists.
-
getAerospikeReactorClient
public com.aerospike.client.reactor.IAerospikeReactorClient getAerospikeReactorClient()- Specified by:
getAerospikeReactorClientin interfaceReactiveAerospikeOperations- Returns:
- aerospike reactive client in use.
-
getSetName
-
getMappingContext
-
getNamespace
-