Class DefaultReactiveCosmosRepositoryOperations
java.lang.Object
io.micronaut.data.runtime.operations.internal.AbstractRepositoryOperations
io.micronaut.data.cosmos.operations.DefaultReactiveCosmosRepositoryOperations
- All Implemented Interfaces:
io.micronaut.context.ApplicationContextProvider
,io.micronaut.core.convert.ConversionServiceProvider
,ReactiveRepositoryOperations
,ReactorReactiveRepositoryOperations
,MethodContextAwareStoredQueryDecorator
,PreparedQueryDecorator
@Singleton
@Internal
public final class DefaultReactiveCosmosRepositoryOperations
extends AbstractRepositoryOperations
implements ReactorReactiveRepositoryOperations, ReactiveRepositoryOperations, MethodContextAwareStoredQueryDecorator, PreparedQueryDecorator
The reactive Cosmos DB repository operations implementation.
- Since:
- 3.9.0
- Author:
- radovanradic
-
Field Summary
Fields inherited from class io.micronaut.data.runtime.operations.internal.AbstractRepositoryOperations
attributeConverterRegistry, conversionService, dateTimeProvider, entityEventRegistry, runtimeEntityRegistry
-
Constructor Summary
ConstructorDescriptionDefaultReactiveCosmosRepositoryOperations
(DateTimeProvider<Object> dateTimeProvider, RuntimeEntityRegistry runtimeEntityRegistry, DataConversionService conversionService, AttributeConverterRegistry attributeConverterRegistry, com.azure.cosmos.CosmosAsyncClient cosmosAsyncClient, io.micronaut.data.cosmos.operations.CosmosSerde cosmosSerde, @Nullable CosmosDiagnosticsProcessor cosmosDiagnosticsProcessor, CosmosDatabaseConfiguration configuration) Default constructor. -
Method Summary
Modifier and TypeMethodDescription<T> @NonNull reactor.core.publisher.Mono<Long>
count
(PagedQuery<T> pagedQuery) Counts all results for the given query.<E,
R> StoredQuery<E, R> decorate
(io.micronaut.aop.MethodInvocationContext<?, ?> context, StoredQuery<E, R> storedQuery) Decorate stored query.<E,
R> PreparedQuery<E, R> decorate
(PreparedQuery<E, R> preparedQuery) Decorate prepared query.<T> @NonNull reactor.core.publisher.Mono<Number>
delete
(@NonNull DeleteOperation<T> operation) Deletes the entity.<T> @NonNull reactor.core.publisher.Mono<Number>
deleteAll
(@NonNull DeleteBatchOperation<T> operation) Deletes all the entities of the given type.@NonNull reactor.core.publisher.Mono<Number>
executeDelete
(@NonNull PreparedQuery<?, Number> pq) Executes a batch delete for the given query and parameter values.@NonNull reactor.core.publisher.Mono<Number>
executeUpdate
(@NonNull PreparedQuery<?, Number> pq) Executes an update for the given query and parameter values.<T> reactor.core.publisher.Mono<Boolean>
exists
(@NonNull PreparedQuery<T, Boolean> pq) Check with a record exists for the given query.<T,
R> @NonNull reactor.core.publisher.Flux<R> findAll
(@NonNull PreparedQuery<T, R> pq) Finds all results for the given query.<T> @NonNull reactor.core.publisher.Flux<T>
findAll
(PagedQuery<T> pagedQuery) Finds all results for the given query.<T,
R> @NonNull reactor.core.publisher.Mono<R> findOne
(@NonNull PreparedQuery<T, R> pq) Find one by Query.<T> @NonNull reactor.core.publisher.Mono<T>
Find one by ID.<T,
R> @NonNull reactor.core.publisher.Mono<R> findOptional
(@NonNull PreparedQuery<T, R> preparedQuery) Find one by Query.<T> @NonNull reactor.core.publisher.Mono<T>
findOptional
(@NonNull Class<T> type, @NonNull Object id) Find one by ID.<R> @NonNull reactor.core.publisher.Mono<Page<R>>
findPage
(@NonNull PagedQuery<R> pagedQuery) Find a page for the given entity and pageable.<T> @NonNull reactor.core.publisher.Mono<T>
persist
(@NonNull InsertOperation<T> operation) Persist the entity returning a possibly new entity.<T> @NonNull reactor.core.publisher.Flux<T>
persistAll
(@NonNull InsertBatchOperation<T> operation) Persist all the given entities.<T> @NonNull reactor.core.publisher.Mono<T>
update
(@NonNull UpdateOperation<T> operation) Updates the entity returning a possibly new entity.<T> @NonNull reactor.core.publisher.Flux<T>
updateAll
(@NonNull UpdateBatchOperation<T> operation) Updates the entities for the given operation.Methods inherited from class io.micronaut.data.runtime.operations.internal.AbstractRepositoryOperations
checkOptimisticLocking, getApplicationContext, getConversionService, getEntity, getIdReader, isOnlySingleEndedJoins, triggerPostLoad
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface io.micronaut.core.convert.ConversionServiceProvider
getConversionService
Methods inherited from interface io.micronaut.data.operations.reactive.ReactorReactiveRepositoryOperations
execute
-
Constructor Details
-
DefaultReactiveCosmosRepositoryOperations
public DefaultReactiveCosmosRepositoryOperations(DateTimeProvider<Object> dateTimeProvider, RuntimeEntityRegistry runtimeEntityRegistry, DataConversionService conversionService, AttributeConverterRegistry attributeConverterRegistry, com.azure.cosmos.CosmosAsyncClient cosmosAsyncClient, io.micronaut.data.cosmos.operations.CosmosSerde cosmosSerde, @Nullable @Nullable CosmosDiagnosticsProcessor cosmosDiagnosticsProcessor, CosmosDatabaseConfiguration configuration) Default constructor.- Parameters:
dateTimeProvider
- The date time providerruntimeEntityRegistry
- The entity registryconversionService
- The conversion serviceattributeConverterRegistry
- The attribute converter registrycosmosAsyncClient
- The Cosmos async clientcosmosSerde
- The Cosmos de/serialization helpercosmosDiagnosticsProcessor
- The Cosmos diagnostics processor, can be nullconfiguration
- The Cosmos database configuration
-
-
Method Details
-
decorate
Description copied from interface:PreparedQueryDecorator
Decorate prepared query.- Specified by:
decorate
in interfacePreparedQueryDecorator
- Type Parameters:
E
- The entity typeR
- The result type- Parameters:
preparedQuery
- The query to be decorated- Returns:
- decorated prepared query
-
decorate
public <E,R> StoredQuery<E,R> decorate(io.micronaut.aop.MethodInvocationContext<?, ?> context, StoredQuery<E, R> storedQuery) Description copied from interface:MethodContextAwareStoredQueryDecorator
Decorate stored query.- Specified by:
decorate
in interfaceMethodContextAwareStoredQueryDecorator
- Type Parameters:
E
- The entity typeR
- The result type- Parameters:
context
- The contextstoredQuery
- The query to be decorated- Returns:
- decorated stored query
-
findOne
@NonNull public <T> @NonNull reactor.core.publisher.Mono<T> findOne(@NonNull @NonNull Class<T> type, Object id) Description copied from interface:ReactiveRepositoryOperations
Find one by ID.- Specified by:
findOne
in interfaceReactiveRepositoryOperations
- Specified by:
findOne
in interfaceReactorReactiveRepositoryOperations
- Type Parameters:
T
- The generic type- Parameters:
type
- The typeid
- The id- Returns:
- A publisher that emits the result
-
exists
public <T> reactor.core.publisher.Mono<Boolean> exists(@NonNull @NonNull PreparedQuery<T, Boolean> pq) Description copied from interface:ReactiveRepositoryOperations
Check with a record exists for the given query.- Specified by:
exists
in interfaceReactiveRepositoryOperations
- Specified by:
exists
in interfaceReactorReactiveRepositoryOperations
- Type Parameters:
T
- The declaring type- Parameters:
pq
- The query- Returns:
- True if it exists
-
findOne
@NonNull public <T,R> @NonNull reactor.core.publisher.Mono<R> findOne(@NonNull @NonNull PreparedQuery<T, R> pq) Description copied from interface:ReactiveRepositoryOperations
Find one by Query.- Specified by:
findOne
in interfaceReactiveRepositoryOperations
- Specified by:
findOne
in interfaceReactorReactiveRepositoryOperations
- Type Parameters:
T
- The generic resultTypeR
- The result type- Parameters:
pq
- The prepared query- Returns:
- A publisher that emits the result
-
findOptional
@NonNull public <T> @NonNull reactor.core.publisher.Mono<T> findOptional(@NonNull @NonNull Class<T> type, @NonNull @NonNull Object id) Description copied from interface:ReactiveRepositoryOperations
Find one by ID.- Specified by:
findOptional
in interfaceReactiveRepositoryOperations
- Specified by:
findOptional
in interfaceReactorReactiveRepositoryOperations
- Type Parameters:
T
- The generic type- Parameters:
type
- The typeid
- The id- Returns:
- A publisher that emits zero or one result
-
findOptional
@NonNull public <T,R> @NonNull reactor.core.publisher.Mono<R> findOptional(@NonNull @NonNull PreparedQuery<T, R> preparedQuery) Description copied from interface:ReactiveRepositoryOperations
Find one by Query.- Specified by:
findOptional
in interfaceReactiveRepositoryOperations
- Specified by:
findOptional
in interfaceReactorReactiveRepositoryOperations
- Type Parameters:
T
- The generic resultTypeR
- The result type- Parameters:
preparedQuery
- The prepared query- Returns:
- A publisher that emits the zero or one result
-
findAll
Description copied from interface:ReactiveRepositoryOperations
Finds all results for the given query.- Specified by:
findAll
in interfaceReactiveRepositoryOperations
- Specified by:
findAll
in interfaceReactorReactiveRepositoryOperations
- Type Parameters:
T
- The generic type- Parameters:
pagedQuery
- The paged query- Returns:
- A publisher that emits the results
-
count
Description copied from interface:ReactiveRepositoryOperations
Counts all results for the given query.- Specified by:
count
in interfaceReactiveRepositoryOperations
- Specified by:
count
in interfaceReactorReactiveRepositoryOperations
- Type Parameters:
T
- The generic type- Parameters:
pagedQuery
- The paged query- Returns:
- A publisher that emits the count as a long
-
findAll
@NonNull public <T,R> @NonNull reactor.core.publisher.Flux<R> findAll(@NonNull @NonNull PreparedQuery<T, R> pq) Description copied from interface:ReactiveRepositoryOperations
Finds all results for the given query.- Specified by:
findAll
in interfaceReactiveRepositoryOperations
- Specified by:
findAll
in interfaceReactorReactiveRepositoryOperations
- Type Parameters:
T
- The entity typeR
- The result type- Parameters:
pq
- The prepared query- Returns:
- A publisher that emits an iterable with all results
-
persist
@NonNull public <T> @NonNull reactor.core.publisher.Mono<T> persist(@NonNull @NonNull InsertOperation<T> operation) Description copied from interface:ReactiveRepositoryOperations
Persist the entity returning a possibly new entity.- Specified by:
persist
in interfaceReactiveRepositoryOperations
- Specified by:
persist
in interfaceReactorReactiveRepositoryOperations
- Type Parameters:
T
- The generic type- Parameters:
operation
- The entity operation- Returns:
- A publisher that emits the entity
-
update
@NonNull public <T> @NonNull reactor.core.publisher.Mono<T> update(@NonNull @NonNull UpdateOperation<T> operation) Description copied from interface:ReactiveRepositoryOperations
Updates the entity returning a possibly new entity.- Specified by:
update
in interfaceReactiveRepositoryOperations
- Specified by:
update
in interfaceReactorReactiveRepositoryOperations
- Type Parameters:
T
- The generic type- Parameters:
operation
- The entity operation- Returns:
- A publisher that emits the entity
-
updateAll
@NonNull public <T> @NonNull reactor.core.publisher.Flux<T> updateAll(@NonNull @NonNull UpdateBatchOperation<T> operation) Description copied from interface:ReactiveRepositoryOperations
Updates the entities for the given operation.- Specified by:
updateAll
in interfaceReactiveRepositoryOperations
- Specified by:
updateAll
in interfaceReactorReactiveRepositoryOperations
- Type Parameters:
T
- The generic type- Parameters:
operation
- The operation- Returns:
- The updated entities
-
persistAll
@NonNull public <T> @NonNull reactor.core.publisher.Flux<T> persistAll(@NonNull @NonNull InsertBatchOperation<T> operation) Description copied from interface:ReactiveRepositoryOperations
Persist all the given entities.- Specified by:
persistAll
in interfaceReactiveRepositoryOperations
- Specified by:
persistAll
in interfaceReactorReactiveRepositoryOperations
- Type Parameters:
T
- The generic type- Parameters:
operation
- The batch operation- Returns:
- The entities, possibly mutated
-
executeUpdate
@NonNull public @NonNull reactor.core.publisher.Mono<Number> executeUpdate(@NonNull @NonNull PreparedQuery<?, Number> pq) Description copied from interface:ReactiveRepositoryOperations
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 interfaceReactiveRepositoryOperations
- Specified by:
executeUpdate
in interfaceReactorReactiveRepositoryOperations
- Parameters:
pq
- The prepared query- Returns:
- A publisher that emits a boolean true if the update was successful
-
executeDelete
@NonNull public @NonNull reactor.core.publisher.Mono<Number> executeDelete(@NonNull @NonNull PreparedQuery<?, Number> pq) Description copied from interface:ReactiveRepositoryOperations
Executes a batch delete 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 interfaceReactiveRepositoryOperations
- Specified by:
executeDelete
in interfaceReactorReactiveRepositoryOperations
- Parameters:
pq
- The prepared query- Returns:
- A publisher that emits a boolean true if the update was successful
-
delete
@NonNull public <T> @NonNull reactor.core.publisher.Mono<Number> delete(@NonNull @NonNull DeleteOperation<T> operation) Description copied from interface:ReactiveRepositoryOperations
Deletes the entity.- Specified by:
delete
in interfaceReactiveRepositoryOperations
- Specified by:
delete
in interfaceReactorReactiveRepositoryOperations
- Type Parameters:
T
- The generic type- Parameters:
operation
- The batch operation- Returns:
- A publisher that emits the number of entities deleted
-
deleteAll
@NonNull public <T> @NonNull reactor.core.publisher.Mono<Number> deleteAll(@NonNull @NonNull DeleteBatchOperation<T> operation) Description copied from interface:ReactiveRepositoryOperations
Deletes all the entities of the given type.- Specified by:
deleteAll
in interfaceReactiveRepositoryOperations
- Specified by:
deleteAll
in interfaceReactorReactiveRepositoryOperations
- Type Parameters:
T
- The generic type- Parameters:
operation
- The batch operation- Returns:
- A publisher that emits the number of entities deleted
-
findPage
@NonNull public <R> @NonNull reactor.core.publisher.Mono<Page<R>> findPage(@NonNull @NonNull PagedQuery<R> pagedQuery) Description copied from interface:ReactiveRepositoryOperations
Find a page for the given entity and pageable.- Specified by:
findPage
in interfaceReactiveRepositoryOperations
- Specified by:
findPage
in interfaceReactorReactiveRepositoryOperations
- Type Parameters:
R
- The entity generic type- Parameters:
pagedQuery
- The paged query- Returns:
- The page type
-