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 Details

  • Constructor Details

    • AbstractRepositoryOperations

      protected AbstractRepositoryOperations(DateTimeProvider<Object> dateTimeProvider, RuntimeEntityRegistry runtimeEntityRegistry, DataConversionService conversionService, AttributeConverterRegistry attributeConverterRegistry)
      Default constructor.
      Parameters:
      dateTimeProvider - The date time provider
      runtimeEntityRegistry - The entity registry
      conversionService - The conversion service
      attributeConverterRegistry - The attribute converter registry
  • Method Details

    • getConversionService

      public DataConversionService getConversionService()
      Returns:
      the conversion service
    • getApplicationContext

      public io.micronaut.context.ApplicationContext getApplicationContext()
      Specified by:
      getApplicationContext in interface io.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 entity
      pe - The persistent entity
      annotationMetadata - 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

      protected void checkOptimisticLocking(int expected, Number received)
      Compare the expected modifications and the received rows count. If not equals throw OptimisticLockException.
      Parameters:
      expected - The expected value
      received - 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 entity
      joinFetchPaths - The join paths
      Returns:
      true if there are no "many" joins