Class AbstractSpecificationInterceptor<T,R>

java.lang.Object
io.micronaut.data.runtime.intercept.AbstractQueryInterceptor<T,R>
io.micronaut.data.runtime.intercept.criteria.AbstractSpecificationInterceptor<T,R>
Type Parameters:
T - The declaring type
R - The return type
All Implemented Interfaces:
io.micronaut.data.intercept.DataInterceptor<T,R>
Direct Known Subclasses:
AbstractAsyncSpecificationInterceptor, AbstractReactiveSpecificationInterceptor, CountSpecificationInterceptor, DeleteAllSpecificationInterceptor, ExistsSpecificationInterceptor, FindAllSpecificationInterceptor, FindOneSpecificationInterceptor, FindPageSpecificationInterceptor, UpdateAllSpecificationInterceptor

@Internal public abstract class AbstractSpecificationInterceptor<T,R> extends AbstractQueryInterceptor<T,R>
Abstract specification interceptor.
Since:
3.2
  • Field Details

    • PREPARED_QUERY_KEY

      protected static final String PREPARED_QUERY_KEY
      See Also:
    • criteriaRepositoryOperations

      protected final io.micronaut.data.operations.CriteriaRepositoryOperations criteriaRepositoryOperations
    • criteriaBuilder

      protected final jakarta.persistence.criteria.CriteriaBuilder criteriaBuilder
  • Constructor Details

    • AbstractSpecificationInterceptor

      protected AbstractSpecificationInterceptor(io.micronaut.data.operations.RepositoryOperations operations)
      Default constructor.
      Parameters:
      operations - The operations
  • Method Details

    • findAll

      protected final <T> List<T> findAll(io.micronaut.data.intercept.RepositoryMethodKey methodKey, io.micronaut.aop.MethodInvocationContext<?,?> context, io.micronaut.data.model.Pageable pageable, jakarta.persistence.criteria.CriteriaQuery<T> criteriaQuery)
    • getMethodJoinPaths

      protected final Set<io.micronaut.data.model.query.JoinPath> getMethodJoinPaths(io.micronaut.data.intercept.RepositoryMethodKey methodKey, io.micronaut.aop.MethodInvocationContext<?,?> context)
    • getPageable

      @NonNull protected @NonNull io.micronaut.data.model.Pageable getPageable(io.micronaut.aop.MethodInvocationContext<?,?> context)
      Description copied from class: AbstractQueryInterceptor
      Resolves the Pageable for the given context.
      Overrides:
      getPageable in class AbstractQueryInterceptor<T,R>
      Parameters:
      context - The pageable
      Returns:
      The pageable or null
    • getQueryBuilder

      @NonNull protected final @NonNull io.micronaut.data.model.query.builder.QueryBuilder getQueryBuilder(io.micronaut.data.intercept.RepositoryMethodKey methodKey, io.micronaut.aop.MethodInvocationContext<?,?> context)
    • buildExistsQuery

      @NonNull protected final <E> @NonNull jakarta.persistence.criteria.CriteriaQuery<E> buildExistsQuery(io.micronaut.data.intercept.RepositoryMethodKey methodKey, io.micronaut.aop.MethodInvocationContext<?,?> context)
    • buildUpdateQuery

      @NonNull protected final <E> @NonNull jakarta.persistence.criteria.CriteriaUpdate<E> buildUpdateQuery(io.micronaut.aop.MethodInvocationContext<?,?> context)
    • buildDeleteQuery

      @NonNull protected final <E> @NonNull jakarta.persistence.criteria.CriteriaDelete<E> buildDeleteQuery(io.micronaut.aop.MethodInvocationContext<?,?> context)
    • buildCountQuery

      @NonNull protected final @NonNull jakarta.persistence.criteria.CriteriaQuery<Long> buildCountQuery(io.micronaut.data.intercept.RepositoryMethodKey methodKey, io.micronaut.aop.MethodInvocationContext<?,?> context)
    • buildQuery

      @NonNull protected final <N> @NonNull jakarta.persistence.criteria.CriteriaQuery<N> buildQuery(io.micronaut.data.intercept.RepositoryMethodKey methodKey, io.micronaut.aop.MethodInvocationContext<?,?> context)
    • applyPaginationAndSort

      protected final io.micronaut.data.model.Pageable applyPaginationAndSort(io.micronaut.data.model.Pageable pageable, jakarta.persistence.criteria.CriteriaQuery<?> criteriaQuery, boolean singleResult)
    • buildIdsQuery

      protected final jakarta.persistence.criteria.CriteriaQuery<jakarta.persistence.Tuple> buildIdsQuery(io.micronaut.data.intercept.RepositoryMethodKey methodKey, io.micronaut.aop.MethodInvocationContext<?,?> context, io.micronaut.data.model.Sort sort)
    • getQuerySpecification

      @Nullable protected <K> @Nullable io.micronaut.data.repository.jpa.criteria.QuerySpecification<K> getQuerySpecification(io.micronaut.aop.MethodInvocationContext<?,?> context)
      Find QuerySpecification in context.
      Type Parameters:
      K - the specification entity root type
      Parameters:
      context - The context
      Returns:
      found specification
    • getCriteriaQueryBuilder

      @NonNull protected final <K> @NonNull io.micronaut.data.repository.jpa.criteria.CriteriaQueryBuilder<K> getCriteriaQueryBuilder(io.micronaut.aop.MethodInvocationContext<?,?> context, Set<io.micronaut.data.model.query.JoinPath> joinPaths)
      Find CriteriaQueryBuilder or QuerySpecification in context.
      Type Parameters:
      K - the result type
      Parameters:
      context - The context
      joinPaths - The join fetch paths
      Returns:
      found specification
    • getIdsCriteriaQueryBuilder

      @NonNull protected final @NonNull io.micronaut.data.repository.jpa.criteria.CriteriaQueryBuilder<jakarta.persistence.Tuple> getIdsCriteriaQueryBuilder(io.micronaut.aop.MethodInvocationContext<?,?> context, Set<io.micronaut.data.model.query.JoinPath> joinPaths, io.micronaut.data.model.Sort sort)
    • getIdExpression

      protected final jakarta.persistence.criteria.Expression<?> getIdExpression(jakarta.persistence.criteria.Root<?> root)
    • getDeleteSpecification

      @Nullable protected <K> @Nullable io.micronaut.data.repository.jpa.criteria.DeleteSpecification<K> getDeleteSpecification(io.micronaut.aop.MethodInvocationContext<?,?> context)
      Find DeleteSpecification in context.
      Type Parameters:
      K - the specification entity root type
      Parameters:
      context - The context
      Returns:
      found specification
    • getCriteriaDeleteBuilder

      @NonNull protected <K> @NonNull io.micronaut.data.repository.jpa.criteria.CriteriaDeleteBuilder<K> getCriteriaDeleteBuilder(io.micronaut.aop.MethodInvocationContext<?,?> context)
      Find CriteriaDeleteBuilder or QuerySpecification in context.
      Type Parameters:
      K - the result type
      Parameters:
      context - The context
      Returns:
      found specification
    • getUpdateSpecification

      @Nullable protected <K> @Nullable io.micronaut.data.repository.jpa.criteria.UpdateSpecification<K> getUpdateSpecification(io.micronaut.aop.MethodInvocationContext<?,?> context)
      Find UpdateSpecification in context.
      Type Parameters:
      K - the specification entity root type
      Parameters:
      context - The context
      Returns:
      found specification
    • getCriteriaUpdateBuilder

      @NonNull protected <K> @NonNull io.micronaut.data.repository.jpa.criteria.CriteriaUpdateBuilder<K> getCriteriaUpdateBuilder(io.micronaut.aop.MethodInvocationContext<?,?> context)
      Find CriteriaUpdateBuilder or QuerySpecification in context.
      Type Parameters:
      K - the result type
      Parameters:
      context - The context
      Returns:
      found specification