Class AbstractRepositoryOperations

java.lang.Object
io.micronaut.data.runtime.operations.internal.AbstractRepositoryOperations
All Implemented Interfaces:
io.micronaut.context.ApplicationContextProvider
Direct Known Subclasses:
AbstractSqlRepositoryOperations

@Internal public abstract class AbstractRepositoryOperations extends Object implements io.micronaut.context.ApplicationContextProvider
Abstract repository implementation.
Since:
3.1.0
  • Field Details

    • entityEventRegistry

      protected final io.micronaut.data.event.EntityEventListener<Object> entityEventRegistry
    • dateTimeProvider

      protected final DateTimeProvider dateTimeProvider
    • runtimeEntityRegistry

      protected final io.micronaut.data.model.runtime.RuntimeEntityRegistry runtimeEntityRegistry
    • conversionService

      protected final DataConversionService conversionService
    • attributeConverterRegistry

      protected final io.micronaut.data.model.runtime.AttributeConverterRegistry attributeConverterRegistry
  • Constructor Details

    • AbstractRepositoryOperations

      protected AbstractRepositoryOperations(DateTimeProvider<Object> dateTimeProvider, io.micronaut.data.model.runtime.RuntimeEntityRegistry runtimeEntityRegistry, DataConversionService conversionService, io.micronaut.data.model.runtime.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 io.micronaut.data.model.runtime.RuntimePersistentEntity<T> getEntity(@NonNull @NonNull Class<T> type)
    • triggerPostLoad

      protected <T> T triggerPostLoad(@NonNull T entity, io.micronaut.data.model.runtime.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 io.micronaut.data.model.runtime.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(io.micronaut.data.model.runtime.RuntimePersistentEntity<?> rootPersistentEntity, Set<io.micronaut.data.model.query.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