Class AbstractRepositoryOperations
java.lang.Object
io.micronaut.data.runtime.operations.internal.AbstractRepositoryOperations
- All Implemented Interfaces:
io.micronaut.context.ApplicationContextProvider
- Direct Known Subclasses:
AbstractSqlRepositoryOperations
,DefaultReactiveCosmosRepositoryOperations
,DefaultReactiveMongoRepositoryOperations
@Internal
public abstract class AbstractRepositoryOperations
extends Object
implements io.micronaut.context.ApplicationContextProvider
Abstract repository implementation.
- Since:
- 3.1.0
- Author:
- Denis Stepanov
-
Field Summary
Modifier and TypeFieldDescriptionprotected final AttributeConverterRegistry
protected final DataConversionService
protected final DateTimeProvider
protected final EntityEventListener<Object>
protected final RuntimeEntityRegistry
-
Constructor Summary
ModifierConstructorDescriptionprotected
AbstractRepositoryOperations
(DateTimeProvider<Object> dateTimeProvider, RuntimeEntityRegistry runtimeEntityRegistry, DataConversionService conversionService, AttributeConverterRegistry attributeConverterRegistry) Default constructor. -
Method Summary
Modifier and TypeMethodDescriptionprotected void
checkOptimisticLocking
(int expected, Number received) Compare the expected modifications and the received rows count.io.micronaut.context.ApplicationContext
final <T> @NonNull RuntimePersistentEntity<T>
protected final @NonNull RuntimePersistentProperty<Object>
getIdReader
(@NonNull Object o) Obtain an ID reader for the given object.protected boolean
isOnlySingleEndedJoins
(RuntimePersistentEntity<?> rootPersistentEntity, Set<JoinPath> joinFetchPaths) Check if joined associated are all single ended (Can produce only one result).protected <T> T
triggerPostLoad
(T entity, RuntimePersistentEntity<T> pe, io.micronaut.core.annotation.AnnotationMetadata annotationMetadata) Trigger the post load event.
-
Field Details
-
entityEventRegistry
-
dateTimeProvider
-
runtimeEntityRegistry
-
conversionService
-
attributeConverterRegistry
-
-
Constructor Details
-
AbstractRepositoryOperations
protected AbstractRepositoryOperations(DateTimeProvider<Object> dateTimeProvider, RuntimeEntityRegistry runtimeEntityRegistry, DataConversionService conversionService, AttributeConverterRegistry attributeConverterRegistry) Default constructor.- Parameters:
dateTimeProvider
- The date time providerruntimeEntityRegistry
- The entity registryconversionService
- The conversion serviceattributeConverterRegistry
- The attribute converter registry
-
-
Method Details
-
getConversionService
- Returns:
- the conversion service
-
getApplicationContext
public io.micronaut.context.ApplicationContext getApplicationContext()- Specified by:
getApplicationContext
in interfaceio.micronaut.context.ApplicationContextProvider
-
getEntity
@NonNull public final <T> @NonNull RuntimePersistentEntity<T> getEntity(@NonNull @NonNull Class<T> type) -
triggerPostLoad
protected <T> T triggerPostLoad(@NonNull T entity, RuntimePersistentEntity<T> pe, io.micronaut.core.annotation.AnnotationMetadata annotationMetadata) Trigger the post load event.- Type Parameters:
T
- The generic type- Parameters:
entity
- The entitype
- The persistent entityannotationMetadata
- The annotation metadata- Returns:
- The entity, possibly modified
-
getIdReader
@NonNull protected final @NonNull RuntimePersistentProperty<Object> getIdReader(@NonNull @NonNull Object o) Obtain an ID reader for the given object.- Parameters:
o
- The object- Returns:
- The ID reader
-
checkOptimisticLocking
Compare the expected modifications and the received rows count. If not equals throwOptimisticLockException
.- Parameters:
expected
- The expected valuereceived
- THe received value
-
isOnlySingleEndedJoins
protected boolean isOnlySingleEndedJoins(RuntimePersistentEntity<?> rootPersistentEntity, Set<JoinPath> joinFetchPaths) Check if joined associated are all single ended (Can produce only one result).- Parameters:
rootPersistentEntity
- The root entityjoinFetchPaths
- The join paths- Returns:
- true if there are no "many" joins
-