Interface AerospikeOperations
- All Known Implementing Classes:
AerospikeTemplate
- Author:
- Oliver Gierke, Peter Milne, Anastasiia Smirnova, Roman Terentiev
-
Method Summary
Modifier and TypeMethodDescription<T> TAdd integer/double bin value to existing document bin value, read the new modified document and map it back the given document class type.<T> TAdd integer/double bin values to existing document bin values, read the new modified document and map it back the given document class type.<T> com.aerospike.client.query.ResultSetaggregate(com.aerospike.client.query.Filter filter, Class<T> entityClass, String module, String function, List<com.aerospike.client.Value> arguments) Execute query, apply statement's aggregation function, and return result iterator.<T> TAppend bin string value to existing document bin value, read the new modified document and map it back the given document class type.<T> TAppend bin string values to existing document bin values, read the new modified document and map it back the given document class type.<T> longReturn the amount of documents in the given entityClass's Aerospike set.longReturn the amount of documents in the given Aerospike set.<T> longReturn the amount of documents in a query results. set name will be determined by the given entityClass.<T> voidcreateIndex(Class<T> entityClass, String indexName, String binName, com.aerospike.client.query.IndexType indexType) Create an index with the specified name in Aerospike.<T> voidcreateIndex(Class<T> entityClass, String indexName, String binName, com.aerospike.client.query.IndexType indexType, com.aerospike.client.query.IndexCollectionType indexCollectionType) Create an index with the specified name in Aerospike.<T> voidcreateIndex(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) Create an index with the specified name in Aerospike.<T> voidTruncate/Delete all the documents in the given entity's set.<T> booleanDelete a document by id, set name will be determined by the given entityClass.<T> booleandelete(T document) Delete a document.<T> voiddeleteIndex(Class<T> entityClass, String indexName) Delete an index with the specified name from Aerospike.<T> TExecute operation against underlying store.<T> booleanCheck if a document exists by providing document id and entityClass (set name will be determined by the given entityClass).<T> Stream<T>Find documents in the given entityClass's set using a query and map them to the given class type.<T,S> Stream<S> Find documents in the given entityClass's set using a query and map them to the given target class type.<T> Stream<T>Find all documents in the given entityClass's set and map them to the given class type.<T,S> Stream<S> Find all documents in the given entityClass's set and map them to the given target class type.<T> Stream<T>Find all documents in the given entityClass's set using a provided sort and map them to the given class type.<T,S> Stream<S> Find all documents in the given entityClass's set using a provided sort and map them to the given target class type.<T> TFind a document by id, set name will be determined by the given entityClass.<T,S> S Find a document by id, set name will be determined by the given entityClass.<T> List<T>Find documents by providing multiple ids using a single batch read operation, set name will be determined by the given entityClass.<T,S> List<S> Find documents by providing multiple ids using a single batch read operation, set name will be determined by the given entityClass.findByIds(GroupedKeys groupedKeys) Executes a single batch request to get results for several entities.<T> Stream<T>findInRange(long offset, long limit, Sort sort, Class<T> entityClass) 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> Stream<S> findInRange(long offset, long limit, Sort sort, Class<T> entityClass, Class<S> targetClass) 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.IAerospikeClientMappingContext<?,?> <T> StringgetSetName(Class<T> entityClass) Returns the set name used for the given entityClass in the namespace configured for the AerospikeTemplate in use.booleanindexExists(String indexName) Checks whether an index with the specified name exists in Aerospike.<T> voidinsert(T document) Insert a document usingRecordExistsAction.CREATE_ONLYpolicy.<T> voidinsertAll(Collection<? extends T> documents) Insert each document of the given documents using single insert operations.<T> voidpersist(T document, com.aerospike.client.policy.WritePolicy writePolicy) Persist a document using specified WritePolicy.<T> TPrepend bin string value to existing document bin value, read the new modified document and map it back the given document class type.<T> TPrepend bin string values to existing document bin values, read the new modified document and map it back the given document class type.<T> voidsave(T document) Save a document.<T> voidupdate(T document) Update a 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> voidupdate(T document, Collection<String> fields) Update document's specific fields based on a given collection of fields usingRecordExistsAction.UPDATE_ONLYpolicy.
-
Method Details
-
getSetName
Returns the set name used for the given entityClass in the namespace configured for the AerospikeTemplate in use.- Parameters:
entityClass- The class to get the set name for.- Returns:
- The set name used for the given entityClass.
-
getMappingContext
MappingContext<?,?> getMappingContext()- Returns:
- mapping context in use.
-
getAerospikeClient
com.aerospike.client.IAerospikeClient getAerospikeClient()- Returns:
- aerospike client in use.
-
insert
<T> void insert(T document) Insert a document usingRecordExistsAction.CREATE_ONLYpolicy.If document has version property it will be updated with the server's version after successful operation.
- Parameters:
document- The document to insert. Must not be null.
-
save
<T> void save(T document) Save a document.If the document has version property - CAS algorithm is used for updating record. Version property is used for deciding whether to create a new record or update an existing one. If the 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 the 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".- Parameters:
document- The document to save. Must not be null.
-
persist
<T> void persist(T document, com.aerospike.client.policy.WritePolicy writePolicy) Persist a document using specified WritePolicy.- Parameters:
document- The document to persist. Must not be null.writePolicy- The Aerospike write policy for the inner Aerospike put operation. Must not be null.
-
insertAll
Insert each document of the given documents using single insert operations.- Parameters:
documents- The documents to insert. Must not be null.
-
update
<T> void update(T document) Update a 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.
- Parameters:
document- The document to update. Must not be null.
-
update
Update document's specific fields based on a given collection of fields usingRecordExistsAction.UPDATE_ONLYpolicy. You can instantiate the document with only the 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.
- Parameters:
document- The document to update. Must not be null.
-
delete
Truncate/Delete all the documents in the given entity's set.- Parameters:
entityClass- The class to extract the Aerospike set from. Must not be null.
-
delete
Delete a document by id, set name will be determined by the given entityClass.- 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:
- whether the document existed on server before deletion.
-
delete
<T> boolean delete(T document) Delete a document.- Parameters:
document- The document to delete. Must not be null.- Returns:
- whether the document existed on server before deletion.
-
exists
Check if a document exists by providing document id and entityClass (set name will be determined by the given entityClass).- 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:
- whether the document exists.
-
find
Find documents in the given entityClass's set using a query and map them to the given class type.- 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 Stream of matching documents, returned documents will be mapped to entityClass's type.
-
find
Find documents in the given entityClass's set using a query and map them to the given target class type.- 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 Stream of matching documents, returned documents will be mapped to targetClass's type.
-
findAll
Find all documents in the given entityClass's set and map them to the given class type.- Parameters:
entityClass- The class to extract the Aerospike set from and to map the documents to. Must not be null.- Returns:
- A Stream of matching documents, returned documents will be mapped to entityClass's type.
-
findAll
Find all documents in the given entityClass's set and map them to the given target class type.- 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 Stream of matching documents, returned documents will be mapped to targetClass's type.
-
findById
Find a document by id, set name will be determined by the given entityClass.Document will be mapped to the given entityClass.
- 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:
- The document from Aerospike, returned document will be mapped to entityClass's type, if document doesn't exist return null.
-
findById
Find a document by id, set name will be determined by the given entityClass.Document will be mapped to the given entityClass.
- 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:
- The document from Aerospike, returned document will be mapped to targetClass's type, if document doesn't exist return null.
-
findByIds
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.
- 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:
- The documents from Aerospike, returned documents will be mapped to entityClass's type, if no document exists return an empty list.
-
findByIds
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.
- 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:
- The documents from Aerospike, returned documents will be mapped to targetClass's type, if no document exists return an empty list.
-
findByIds
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.
- Parameters:
groupedKeys- Must not be null.- Returns:
- grouped entities.
-
add
Add integer/double bin values to existing document bin values, read the new modified document and map it back the given document class type.- 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:
- Modified document after add operations.
-
add
Add integer/double bin value to existing document bin value, read the new modified document and map it back the given document class type.- 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:
- Modified document after add operation.
-
append
Append bin string values to existing document bin values, read the new modified document and map it back the given document class type.- 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:
- Modified document after append operations.
-
append
Append bin string value to existing document bin value, read the new modified document and map it back the given document class type.- 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:
- Modified document after append operation.
-
prepend
Prepend bin string values to existing document bin values, read the new modified document and map it back the given document class type.- 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:
- Modified document after prepend operations.
-
prepend
Prepend bin string value to existing document bin value, read the new modified document and map it back the given document class type.- 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:
- Modified document after prepend operation.
-
aggregate
<T> com.aerospike.client.query.ResultSet aggregate(com.aerospike.client.query.Filter filter, Class<T> entityClass, String module, String function, List<com.aerospike.client.Value> arguments) Execute query, apply statement's aggregation function, and return result iterator.- Parameters:
filter- The filter to pass to the query.entityClass- The class to extract the Aerospike set from. Must not be null.module- server package where user defined function resides.function- aggregation function name.arguments- arguments to pass to function name, if any.- Returns:
- Result iterator.
-
execute
Execute operation against underlying store.- Parameters:
supplier- must not be null.- Returns:
- Execution result.
-
findAll
Find all documents in the given entityClass's set using a provided sort and map them to the given class type.- 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 stream of matching documents, returned documents will be mapped to entityClass's type.
-
findAll
<T,S> Stream<S> findAll(Sort sort, long offset, long limit, Class<T> entityClass, Class<S> targetClass) Find all documents in the given entityClass's set using a provided sort and map them to the given target class type.- 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 stream of matching documents, returned documents will be mapped to targetClass's type.
-
findInRange
Find documents in the given entityClass's set using a range (offset, limit) and a sort and map them to the given class type.- 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 Stream of matching documents, returned documents will be mapped to entityClass's type.
-
findInRange
<T,S> Stream<S> findInRange(long offset, long limit, Sort sort, Class<T> entityClass, Class<S> targetClass) 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.- 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 Stream of matching documents, returned documents will be mapped to targetClass's type.
-
count
Return the amount of documents in a query results. set name will be determined by the given entityClass.- 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:
- amount of documents that the given query and entity class supplied.
-
count
Return the amount of documents in the given Aerospike set.- Parameters:
setName- The name of the set to count. Must not be null.- Returns:
- amount of documents in the given set.
-
count
Return the amount of documents in the given entityClass's Aerospike set.- Parameters:
entityClass- The class to extract the Aerospike set from. Must not be null.- Returns:
- amount of documents in the set (of the given entityClass).
-
createIndex
<T> void createIndex(Class<T> entityClass, String indexName, String binName, com.aerospike.client.query.IndexType indexType) Create an index with the specified name in Aerospike.- 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
<T> void createIndex(Class<T> entityClass, String indexName, String binName, com.aerospike.client.query.IndexType indexType, com.aerospike.client.query.IndexCollectionType indexCollectionType) Create an index with the specified name in Aerospike.- 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
<T> 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) Create an index with the specified name in Aerospike.- 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
Delete an index with the specified name from Aerospike.- Parameters:
entityClass- The class to extract the Aerospike set from. Must not be null.indexName- The index name. Must not be null.
-
indexExists
Checks whether an index with the specified name exists in Aerospike.- Parameters:
indexName- The Aerospike index name. Must not be null.- Returns:
- true if exists
-