Class ExecutorAsyncOperations
java.lang.Object
io.micronaut.data.runtime.operations.ExecutorAsyncOperations
- All Implemented Interfaces:
AsyncRepositoryOperations
- Direct Known Subclasses:
ExecutorAsyncOperationsSupportingCriteria
An implementation of
AsyncRepositoryOperations
that delegates to a blocking operations and specified Executor
.
This can be used in absence of true asynchronous support at the driver level.
If a backing implementation provides a async API then the backing implementation should not use this class and instead directly implement the AsyncRepositoryOperations
interface.
- Since:
- 1.0.0
- Author:
- graemerocher
-
Constructor Summary
ConstructorDescriptionExecutorAsyncOperations
(@NonNull RepositoryOperations operations, @NonNull Executor executor) Default constructor. -
Method Summary
Modifier and TypeMethodDescription<T> CompletableFuture<Long>
count
(@NonNull PagedQuery<T> pagedQuery) Counts all results for the given query.<T> @NonNull CompletableFuture<Number>
delete
(@NonNull DeleteOperation<T> operation) Deletes the entity.<T> @NonNull CompletableFuture<Number>
deleteAll
(@NonNull DeleteBatchOperation<T> operation) Deletes all the entities of the given type.executeDelete
(PreparedQuery<?, Number> preparedQuery) Executes a delete batch for the given query and parameter values.@NonNull CompletableFuture<Number>
executeUpdate
(@NonNull PreparedQuery<?, Number> preparedQuery) Executes an update for the given query and parameter values.<T> CompletableFuture<Boolean>
exists
(@NonNull PreparedQuery<T, Boolean> preparedQuery) Check with an record exists for the given query.<T> @NonNull CompletableFuture<Iterable<T>>
findAll
(@NonNull PagedQuery<T> pagedQuery) Finds all results for the given query.<T,
R> @NonNull CompletableFuture<Iterable<R>> findAll
(@NonNull PreparedQuery<T, R> preparedQuery) Finds all results for the given query.<T,
R> @NonNull CompletableFuture<R> findOne
(@NonNull PreparedQuery<T, R> preparedQuery) Find one by Query.<T> @NonNull CompletableFuture<T>
Find one by ID.<T,
R> @NonNull CompletableFuture<R> findOptional
(@NonNull PreparedQuery<T, R> preparedQuery) Find one by Query.<T> @NonNull CompletableFuture<T>
findOptional
(@NonNull Class<T> type, @NonNull Object id) Find one by ID.<R> CompletableFuture<Page<R>>
findPage
(@NonNull PagedQuery<R> pagedQuery) Find a page for the given entity and pageable.<T> @NonNull CompletableFuture<T>
persist
(@NonNull InsertOperation<T> entity) Persist the entity returning a possibly new entity.<T> @NonNull CompletableFuture<Iterable<T>>
persistAll
(@NonNull InsertBatchOperation<T> operation) Persist all the given entities.<T> @NonNull CompletableFuture<T>
update
(@NonNull UpdateOperation<T> operation) Updates the entity returning a possibly new entity.<T> @NonNull CompletableFuture<Iterable<T>>
updateAll
(@NonNull UpdateBatchOperation<T> operation) Updates the entities for the given operation.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface io.micronaut.data.operations.async.AsyncRepositoryOperations
execute
-
Constructor Details
-
ExecutorAsyncOperations
public ExecutorAsyncOperations(@NonNull @NonNull RepositoryOperations operations, @NonNull @NonNull Executor executor) Default constructor.- Parameters:
operations
- The target operationsexecutor
- The executor to use.
-
-
Method Details
-
getExecutor
- Specified by:
getExecutor
in interfaceAsyncRepositoryOperations
- Returns:
- The executor used by this async operations
-
findOne
@NonNull public <T> @NonNull CompletableFuture<T> findOne(@NonNull @NonNull Class<T> type, @NonNull @NonNull Object id) Description copied from interface:AsyncRepositoryOperations
Find one by ID.- Specified by:
findOne
in interfaceAsyncRepositoryOperations
- Type Parameters:
T
- The generic type- Parameters:
type
- The typeid
- The id- Returns:
- A completion stage that emits the result
-
exists
public <T> CompletableFuture<Boolean> exists(@NonNull @NonNull PreparedQuery<T, Boolean> preparedQuery) Description copied from interface:AsyncRepositoryOperations
Check with an record exists for the given query.- Specified by:
exists
in interfaceAsyncRepositoryOperations
- Type Parameters:
T
- The declaring type- Parameters:
preparedQuery
- The query- Returns:
- True if it exists
-
findOne
@NonNull public <T,R> @NonNull CompletableFuture<R> findOne(@NonNull @NonNull PreparedQuery<T, R> preparedQuery) Description copied from interface:AsyncRepositoryOperations
Find one by Query.- Specified by:
findOne
in interfaceAsyncRepositoryOperations
- Type Parameters:
T
- The generic resultTypeR
- The result type- Parameters:
preparedQuery
- The prepared query- Returns:
- A completion stage that emits the result
-
findOptional
@NonNull public <T> @NonNull CompletableFuture<T> findOptional(@NonNull @NonNull Class<T> type, @NonNull @NonNull Object id) Description copied from interface:AsyncRepositoryOperations
Find one by ID.- Specified by:
findOptional
in interfaceAsyncRepositoryOperations
- Type Parameters:
T
- The generic type- Parameters:
type
- The typeid
- The id- Returns:
- A completion stage that emits the result or null if there is no result
-
findOptional
@NonNull public <T,R> @NonNull CompletableFuture<R> findOptional(@NonNull @NonNull PreparedQuery<T, R> preparedQuery) Description copied from interface:AsyncRepositoryOperations
Find one by Query.- Specified by:
findOptional
in interfaceAsyncRepositoryOperations
- Type Parameters:
T
- The generic resultTypeR
- The result type- Parameters:
preparedQuery
- The prepared query- Returns:
- A completion stage that emits the result or null if there is no result
-
findAll
@NonNull public <T> @NonNull CompletableFuture<Iterable<T>> findAll(@NonNull @NonNull PagedQuery<T> pagedQuery) Description copied from interface:AsyncRepositoryOperations
Finds all results for the given query.- Specified by:
findAll
in interfaceAsyncRepositoryOperations
- Type Parameters:
T
- The generic type- Parameters:
pagedQuery
- The paged query- Returns:
- A completion stage that emits the results
-
count
Description copied from interface:AsyncRepositoryOperations
Counts all results for the given query.- Specified by:
count
in interfaceAsyncRepositoryOperations
- Type Parameters:
T
- The generic type- Parameters:
pagedQuery
- The paged query- Returns:
- A completion stage that emits the count as a long
-
findAll
@NonNull public <T,R> @NonNull CompletableFuture<Iterable<R>> findAll(@NonNull @NonNull PreparedQuery<T, R> preparedQuery) Description copied from interface:AsyncRepositoryOperations
Finds all results for the given query.- Specified by:
findAll
in interfaceAsyncRepositoryOperations
- Type Parameters:
T
- The entity typeR
- The result type- Parameters:
preparedQuery
- The prepared query- Returns:
- A completion stage that emits an iterable with all results
-
persist
@NonNull public <T> @NonNull CompletableFuture<T> persist(@NonNull @NonNull InsertOperation<T> entity) Description copied from interface:AsyncRepositoryOperations
Persist the entity returning a possibly new entity.- Specified by:
persist
in interfaceAsyncRepositoryOperations
- Type Parameters:
T
- The generic type- Parameters:
entity
- The entity operation- Returns:
- A completion stage that emits the entity
-
update
@NonNull public <T> @NonNull CompletableFuture<T> update(@NonNull @NonNull UpdateOperation<T> operation) Description copied from interface:AsyncRepositoryOperations
Updates the entity returning a possibly new entity.- Specified by:
update
in interfaceAsyncRepositoryOperations
- Type Parameters:
T
- The generic type- Parameters:
operation
- The entity operation- Returns:
- A completion stage that emits the entity
-
updateAll
@NonNull public <T> @NonNull CompletableFuture<Iterable<T>> updateAll(@NonNull @NonNull UpdateBatchOperation<T> operation) Description copied from interface:AsyncRepositoryOperations
Updates the entities for the given operation.- Specified by:
updateAll
in interfaceAsyncRepositoryOperations
- Type Parameters:
T
- The generic type- Parameters:
operation
- The operation- Returns:
- The updated entities
-
delete
@NonNull public <T> @NonNull CompletableFuture<Number> delete(@NonNull @NonNull DeleteOperation<T> operation) Description copied from interface:AsyncRepositoryOperations
Deletes the entity.- Specified by:
delete
in interfaceAsyncRepositoryOperations
- Type Parameters:
T
- The generic type- Parameters:
operation
- The batch operation- Returns:
- A publisher that emits the number of entities deleted
-
persistAll
@NonNull public <T> @NonNull CompletableFuture<Iterable<T>> persistAll(@NonNull @NonNull InsertBatchOperation<T> operation) Description copied from interface:AsyncRepositoryOperations
Persist all the given entities.- Specified by:
persistAll
in interfaceAsyncRepositoryOperations
- Type Parameters:
T
- The generic type- Parameters:
operation
- The batch operation- Returns:
- The entities, possibly mutated
-
executeUpdate
@NonNull public @NonNull CompletableFuture<Number> executeUpdate(@NonNull @NonNull PreparedQuery<?, Number> preparedQuery) Description copied from interface:AsyncRepositoryOperations
Executes an update for the given query and parameter values. If it is possible to return the number of objects updated, then do so.- Specified by:
executeUpdate
in interfaceAsyncRepositoryOperations
- Parameters:
preparedQuery
- The prepared query- Returns:
- A completion that emits a boolean true if successful
-
executeDelete
Description copied from interface:AsyncRepositoryOperations
Executes a delete batch for the given query and parameter values. If it is possible to return the number of objects updated, then do so.- Specified by:
executeDelete
in interfaceAsyncRepositoryOperations
- Parameters:
preparedQuery
- The prepared query- Returns:
- A completion that emits a boolean true if successful
-
deleteAll
@NonNull public <T> @NonNull CompletableFuture<Number> deleteAll(@NonNull @NonNull DeleteBatchOperation<T> operation) Description copied from interface:AsyncRepositoryOperations
Deletes all the entities of the given type.- Specified by:
deleteAll
in interfaceAsyncRepositoryOperations
- Type Parameters:
T
- The generic type- Parameters:
operation
- The batch operation- Returns:
- A completion that emits a boolean true if successful
-
findPage
Description copied from interface:AsyncRepositoryOperations
Find a page for the given entity and pageable.- Specified by:
findPage
in interfaceAsyncRepositoryOperations
- Type Parameters:
R
- The entity generic type- Parameters:
pagedQuery
- The paged query- Returns:
- The page type
-