Class AbstractCriteriaMethodMatch

java.lang.Object
io.micronaut.data.processor.visitors.finders.AbstractCriteriaMethodMatch
All Implemented Interfaces:
MethodMatcher.MethodMatch
Direct Known Subclasses:
DeleteCriteriaMethodMatch, QueryCriteriaMethodMatch, UpdateCriteriaMethodMatch

public abstract class AbstractCriteriaMethodMatch extends Object implements MethodMatcher.MethodMatch
Abstract criteria matcher.
Since:
3.2
  • Field Details

  • Constructor Details

  • Method Details

    • getEntityParameter

      @Nullable protected @Nullable io.micronaut.inject.ast.ParameterElement getEntityParameter()
      Returns:
      The entity parameter
    • getEntitiesParameter

      @Nullable protected @Nullable io.micronaut.inject.ast.ParameterElement getEntitiesParameter()
      Returns:
      The entities parameter
    • getOperationType

      @NonNull protected abstract io.micronaut.data.intercept.annotation.DataMethod.OperationType getOperationType()
      Returns:
      The operation type
    • supportedByImplicitQueries

      protected boolean supportedByImplicitQueries()
      Returns:
      true of the operation is supported by implicit queries
    • buildMatchInfo

      public final MethodMatchInfo buildMatchInfo(MethodMatchContext matchContext)
      Description copied from interface: MethodMatcher.MethodMatch
      Match info builder.
      Specified by:
      buildMatchInfo in interface MethodMatcher.MethodMatch
      Parameters:
      matchContext - The match context
      Returns:
      The match info
    • build

      protected abstract MethodMatchInfo build(MethodMatchContext matchContext)
    • resolveReturnTypeAndInterceptor

      protected FindersUtils.InterceptorMatch resolveReturnTypeAndInterceptor(MethodMatchContext matchContext)
      Parameters:
      matchContext - The match context
      Returns:
      resolved return type and interceptor
    • applyPredicates

      protected <T> void applyPredicates(String querySequence, io.micronaut.inject.ast.ParameterElement[] parameters, io.micronaut.data.model.jpa.criteria.PersistentEntityRoot<T> root, io.micronaut.data.model.jpa.criteria.PersistentEntityCriteriaQuery<T> query, SourcePersistentEntityCriteriaBuilder cb)
      Apply predicates.
      Type Parameters:
      T - The entity type
      Parameters:
      querySequence - The query sequence
      parameters - The parameters
      root - The root
      query - The query
      cb - The criteria builder
    • applyPredicates

      protected <T> void applyPredicates(String querySequence, io.micronaut.inject.ast.ParameterElement[] parameters, io.micronaut.data.model.jpa.criteria.PersistentEntityRoot<T> root, io.micronaut.data.model.jpa.criteria.PersistentEntityCriteriaDelete<T> query, SourcePersistentEntityCriteriaBuilder cb)
      Apply predicates.
      Type Parameters:
      T - The entity type
      Parameters:
      querySequence - The query sequence
      parameters - The parameters
      root - The root
      query - The query
      cb - The criteria builder
    • applyPredicates

      protected <T> void applyPredicates(String querySequence, io.micronaut.inject.ast.ParameterElement[] parameters, io.micronaut.data.model.jpa.criteria.PersistentEntityRoot<T> root, io.micronaut.data.model.jpa.criteria.PersistentEntityCriteriaUpdate<T> query, SourcePersistentEntityCriteriaBuilder cb)
      Apply predicates.
      Type Parameters:
      T - The entity type
      Parameters:
      querySequence - The query sequence
      parameters - The parameters
      root - The root
      query - The query
      cb - The criteria builder
    • applyPredicates

      protected <T> void applyPredicates(List<io.micronaut.inject.ast.ParameterElement> parameters, io.micronaut.data.model.jpa.criteria.PersistentEntityRoot<T> root, io.micronaut.data.model.jpa.criteria.PersistentEntityCriteriaQuery<T> query, SourcePersistentEntityCriteriaBuilder cb)
      Apply predicates based on parameters.
      Type Parameters:
      T - The entity type
      Parameters:
      parameters - The parameters
      root - The root
      query - The query
      cb - The criteria builder
    • applyPredicates

      protected <T> void applyPredicates(io.micronaut.data.model.jpa.criteria.PersistentEntityRoot<T> root, io.micronaut.data.model.jpa.criteria.PersistentEntityCriteriaUpdate<T> query, SourcePersistentEntityCriteriaBuilder cb)
      Apply a basic predicate.
      Type Parameters:
      T - The entity type
      Parameters:
      root - The root
      query - The query
      cb - The criteria builder
    • applyPredicates

      protected <T> void applyPredicates(List<io.micronaut.inject.ast.ParameterElement> parameters, io.micronaut.data.model.jpa.criteria.PersistentEntityRoot<T> root, io.micronaut.data.model.jpa.criteria.PersistentEntityCriteriaUpdate<T> query, SourcePersistentEntityCriteriaBuilder cb)
      Apply predicates based on parameters.
      Type Parameters:
      T - The entity type
      Parameters:
      parameters - The parameters
      root - The root
      query - The query
      cb - The criteria builder
    • applyPredicates

      protected <T> void applyPredicates(List<io.micronaut.inject.ast.ParameterElement> parameters, io.micronaut.data.model.jpa.criteria.PersistentEntityRoot<T> root, io.micronaut.data.model.jpa.criteria.PersistentEntityCriteriaDelete<T> query, SourcePersistentEntityCriteriaBuilder cb)
      Apply predicates based on parameters.
      Type Parameters:
      T - The entity type
      Parameters:
      parameters - The parameters
      root - The root
      query - The query
      cb - The criteria builder
    • getProperty

      @NonNull protected final <T> @NonNull jakarta.persistence.criteria.Expression<?> getProperty(io.micronaut.data.model.jpa.criteria.PersistentEntityRoot<T> root, String propertyName)
    • findProperty

      @Nullable protected final <T> io.micronaut.data.model.jpa.criteria.PersistentPropertyPath<Object> findProperty(io.micronaut.data.model.jpa.criteria.PersistentEntityRoot<T> root, String propertyName)
    • applyJoinSpecs

      protected final void applyJoinSpecs(io.micronaut.data.model.jpa.criteria.PersistentEntityRoot<?> root, @NonNull @NonNull List<io.micronaut.core.annotation.AnnotationValue<io.micronaut.data.annotation.Join>> joinSpecs)
    • joinSpecsAtMatchContext

      @NonNull protected final @NonNull List<io.micronaut.core.annotation.AnnotationValue<io.micronaut.data.annotation.Join>> joinSpecsAtMatchContext(@NonNull @NonNull MethodMatchContext matchContext, boolean isQuery)
      Parameters:
      matchContext - The match context
      isQuery - true if is a query criteria
      Returns:
      a List of annotations values for Join annotation.
    • hasNoWhereAndJoinDeclaration

      protected final boolean hasNoWhereAndJoinDeclaration(@NonNull @NonNull MethodMatchContext matchContext)
    • findSelections

      protected <T> List<jakarta.persistence.criteria.Selection<?>> findSelections(String projectionPart, io.micronaut.data.model.jpa.criteria.PersistentEntityRoot<T> root, io.micronaut.data.model.jpa.criteria.PersistentEntityCriteriaBuilder cb, @Nullable @Nullable String returnTypeName)
      Find projection selection.
      Type Parameters:
      T - The query type
      Parameters:
      projectionPart - The projection
      root - The root
      cb - The criteria builder
      returnTypeName - The return type name
      Returns:
      The selections
    • analyzeMethodResult

      protected final AbstractCriteriaMethodMatch.MethodResult analyzeMethodResult(MethodMatchContext matchContext, String selectedType, io.micronaut.inject.ast.ClassElement queryResultType, FindersUtils.InterceptorMatch interceptorMatch, boolean allowEntityResultByDefault)
    • analyzeMethodResult

      protected final AbstractCriteriaMethodMatch.MethodResult analyzeMethodResult(MethodMatchContext matchContext, io.micronaut.inject.ast.ClassElement queryResultType, FindersUtils.InterceptorMatch interceptorMatch, boolean allowEntityResultByDefault)
    • getDtoProjectionProperties

      protected List<SourcePersistentProperty> getDtoProjectionProperties(SourcePersistentEntity entity, io.micronaut.inject.ast.ClassElement returnType)
      Find DTO properties.
      Parameters:
      entity - The entity
      returnType - The result
      Returns:
      DTO properties