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
@NullUnmarked
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 AbstractRepositoryOperations
attributeConverterRegistry, conversionService, dateTimeProvider, entityEventRegistry, runtimeEntityRegistry -
Constructor Summary
ConstructorsConstructorDescriptionDefaultReactiveCosmosRepositoryOperations(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 AbstractRepositoryOperations
checkOptimisticLocking, getApplicationContext, getConversionService, getEntity, getIdReader, isOnlySingleEndedJoins, triggerPostLoadMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.micronaut.core.convert.ConversionServiceProvider
getConversionServiceMethods inherited from interface 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 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:PreparedQueryDecoratorDecorate prepared query.- Specified by:
decoratein 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:MethodContextAwareStoredQueryDecoratorDecorate stored query.- Specified by:
decoratein interfaceMethodContextAwareStoredQueryDecorator- Type Parameters:
E- The entity typeR- The result type- Parameters:
context- The contextstoredQuery- The query to be decorated- Returns:
- decorated stored query
-
findOne
Description copied from interface:ReactiveRepositoryOperationsFind one by ID.- Specified by:
findOnein interfaceReactiveRepositoryOperations- Specified by:
findOnein interfaceReactorReactiveRepositoryOperations- Type Parameters:
T- The generic type- Parameters:
type- The typeid- The id- Returns:
- A publisher that emits the result
-
exists
Description copied from interface:ReactiveRepositoryOperationsCheck with a record exists for the given query.- Specified by:
existsin interfaceReactiveRepositoryOperations- Specified by:
existsin interfaceReactorReactiveRepositoryOperations- Type Parameters:
T- The declaring type- Parameters:
pq- The query- Returns:
- True if it exists
-
findOne
Description copied from interface:ReactiveRepositoryOperationsFind one by Query.- Specified by:
findOnein interfaceReactiveRepositoryOperations- Specified by:
findOnein interfaceReactorReactiveRepositoryOperations- Type Parameters:
T- The generic resultTypeR- The result type- Parameters:
pq- The prepared query- Returns:
- A publisher that emits the result
-
findOptional
public <T> @NonNull reactor.core.publisher.Mono<T> findOptional(@NonNull Class<T> type, @NonNull Object id) Description copied from interface:ReactiveRepositoryOperationsFind one by ID.- Specified by:
findOptionalin interfaceReactiveRepositoryOperations- Specified by:
findOptionalin interfaceReactorReactiveRepositoryOperations- Type Parameters:
T- The generic type- Parameters:
type- The typeid- The id- Returns:
- A publisher that emits zero or one result
-
findOptional
public <T,R> @NonNull reactor.core.publisher.Mono<R> findOptional(@NonNull PreparedQuery<T, R> preparedQuery) Description copied from interface:ReactiveRepositoryOperationsFind one by Query.- Specified by:
findOptionalin interfaceReactiveRepositoryOperations- Specified by:
findOptionalin 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:ReactiveRepositoryOperationsFinds all results for the given query.- Specified by:
findAllin interfaceReactiveRepositoryOperations- Specified by:
findAllin interfaceReactorReactiveRepositoryOperations- Type Parameters:
T- The generic type- Parameters:
pagedQuery- The paged query- Returns:
- A publisher that emits the results
-
count
Description copied from interface:ReactiveRepositoryOperationsCounts all results for the given query.- Specified by:
countin interfaceReactiveRepositoryOperations- Specified by:
countin interfaceReactorReactiveRepositoryOperations- Type Parameters:
T- The generic type- Parameters:
pagedQuery- The paged query- Returns:
- A publisher that emits the count as a long
-
findAll
Description copied from interface:ReactiveRepositoryOperationsFinds all results for the given query.- Specified by:
findAllin interfaceReactiveRepositoryOperations- Specified by:
findAllin 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
Description copied from interface:ReactiveRepositoryOperationsPersist the entity returning a possibly new entity.- Specified by:
persistin interfaceReactiveRepositoryOperations- Specified by:
persistin interfaceReactorReactiveRepositoryOperations- Type Parameters:
T- The generic type- Parameters:
operation- The entity operation- Returns:
- A publisher that emits the entity
-
update
Description copied from interface:ReactiveRepositoryOperationsUpdates the entity returning a possibly new entity.- Specified by:
updatein interfaceReactiveRepositoryOperations- Specified by:
updatein interfaceReactorReactiveRepositoryOperations- Type Parameters:
T- The generic type- Parameters:
operation- The entity operation- Returns:
- A publisher that emits the entity
-
updateAll
public <T> @NonNull reactor.core.publisher.Flux<T> updateAll(@NonNull UpdateBatchOperation<T> operation) Description copied from interface:ReactiveRepositoryOperationsUpdates the entities for the given operation.- Specified by:
updateAllin interfaceReactiveRepositoryOperations- Specified by:
updateAllin interfaceReactorReactiveRepositoryOperations- Type Parameters:
T- The generic type- Parameters:
operation- The operation- Returns:
- The updated entities
-
persistAll
public <T> @NonNull reactor.core.publisher.Flux<T> persistAll(@NonNull InsertBatchOperation<T> operation) Description copied from interface:ReactiveRepositoryOperationsPersist all the given entities.- Specified by:
persistAllin interfaceReactiveRepositoryOperations- Specified by:
persistAllin interfaceReactorReactiveRepositoryOperations- Type Parameters:
T- The generic type- Parameters:
operation- The batch operation- Returns:
- The entities, possibly mutated
-
executeUpdate
public @NonNull reactor.core.publisher.Mono<Number> executeUpdate(@NonNull PreparedQuery<?, Number> pq) Description copied from interface:ReactiveRepositoryOperationsExecutes 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:
executeUpdatein interfaceReactiveRepositoryOperations- Specified by:
executeUpdatein interfaceReactorReactiveRepositoryOperations- Parameters:
pq- The prepared query- Returns:
- A publisher that emits a boolean true if the update was successful
-
executeDelete
public @NonNull reactor.core.publisher.Mono<Number> executeDelete(@NonNull PreparedQuery<?, Number> pq) Description copied from interface:ReactiveRepositoryOperationsExecutes 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:
executeDeletein interfaceReactiveRepositoryOperations- Specified by:
executeDeletein interfaceReactorReactiveRepositoryOperations- Parameters:
pq- The prepared query- Returns:
- A publisher that emits a boolean true if the update was successful
-
delete
public <T> @NonNull reactor.core.publisher.Mono<Number> delete(@NonNull DeleteOperation<T> operation) Description copied from interface:ReactiveRepositoryOperationsDeletes the entity.- Specified by:
deletein interfaceReactiveRepositoryOperations- Specified by:
deletein interfaceReactorReactiveRepositoryOperations- Type Parameters:
T- The generic type- Parameters:
operation- The batch operation- Returns:
- A publisher that emits the number of entities deleted
-
deleteAll
public <T> @NonNull reactor.core.publisher.Mono<Number> deleteAll(@NonNull DeleteBatchOperation<T> operation) Description copied from interface:ReactiveRepositoryOperationsDeletes all the entities of the given type.- Specified by:
deleteAllin interfaceReactiveRepositoryOperations- Specified by:
deleteAllin interfaceReactorReactiveRepositoryOperations- Type Parameters:
T- The generic type- Parameters:
operation- The batch operation- Returns:
- A publisher that emits the number of entities deleted
-
findPage
public <R> @NonNull reactor.core.publisher.Mono<Page<R>> findPage(@NonNull PagedQuery<R> pagedQuery) Description copied from interface:ReactiveRepositoryOperationsFind a page for the given entity and pageable.- Specified by:
findPagein interfaceReactiveRepositoryOperations- Specified by:
findPagein interfaceReactorReactiveRepositoryOperations- Type Parameters:
R- The entity generic type- Parameters:
pagedQuery- The paged query- Returns:
- The page type
-