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 typeR- 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
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final jakarta.persistence.criteria.CriteriaBuilderprotected final io.micronaut.data.operations.CriteriaRepositoryOperationsprotected static final StringFields inherited from class io.micronaut.data.runtime.intercept.AbstractQueryInterceptor
conversionService, operations, preparedQueryResolver -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAbstractSpecificationInterceptor(io.micronaut.data.operations.RepositoryOperations operations) Default constructor. -
Method Summary
Modifier and TypeMethodDescriptionprotected final io.micronaut.data.model.PageableapplyPaginationAndSort(io.micronaut.data.model.Pageable pageable, jakarta.persistence.criteria.CriteriaQuery<?> criteriaQuery, boolean singleResult) protected final @NonNull jakarta.persistence.criteria.CriteriaQuery<Long>buildCountQuery(io.micronaut.data.intercept.RepositoryMethodKey methodKey, io.micronaut.aop.MethodInvocationContext<?, ?> context) protected final <E> @NonNull jakarta.persistence.criteria.CriteriaDelete<E>buildDeleteQuery(io.micronaut.aop.MethodInvocationContext<?, ?> context) protected final <E> @NonNull jakarta.persistence.criteria.CriteriaQuery<E>buildExistsQuery(io.micronaut.data.intercept.RepositoryMethodKey methodKey, io.micronaut.aop.MethodInvocationContext<?, ?> context) 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) protected final <N> @NonNull jakarta.persistence.criteria.CriteriaQuery<N>buildQuery(io.micronaut.data.intercept.RepositoryMethodKey methodKey, io.micronaut.aop.MethodInvocationContext<?, ?> context) protected final <E> @NonNull jakarta.persistence.criteria.CriteriaUpdate<E>buildUpdateQuery(io.micronaut.aop.MethodInvocationContext<?, ?> context) 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) protected <K> @NonNull io.micronaut.data.repository.jpa.criteria.CriteriaDeleteBuilder<K>getCriteriaDeleteBuilder(io.micronaut.aop.MethodInvocationContext<?, ?> context) FindCriteriaDeleteBuilderorQuerySpecificationin context.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) FindCriteriaQueryBuilderorQuerySpecificationin context.protected <K> @NonNull io.micronaut.data.repository.jpa.criteria.CriteriaUpdateBuilder<K>getCriteriaUpdateBuilder(io.micronaut.aop.MethodInvocationContext<?, ?> context) FindCriteriaUpdateBuilderorQuerySpecificationin context.protected <K> @Nullable io.micronaut.data.repository.jpa.criteria.DeleteSpecification<K>getDeleteSpecification(io.micronaut.aop.MethodInvocationContext<?, ?> context) FindDeleteSpecificationin context.protected final jakarta.persistence.criteria.Expression<?>getIdExpression(jakarta.persistence.criteria.Root<?> root) 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) protected final Set<io.micronaut.data.model.query.JoinPath>getMethodJoinPaths(io.micronaut.data.intercept.RepositoryMethodKey methodKey, io.micronaut.aop.MethodInvocationContext<?, ?> context) protected @NonNull io.micronaut.data.model.PageablegetPageable(io.micronaut.aop.MethodInvocationContext<?, ?> context) Resolves thePageablefor the given context.protected final @NonNull io.micronaut.data.model.query.builder.QueryBuildergetQueryBuilder(io.micronaut.data.intercept.RepositoryMethodKey methodKey, io.micronaut.aop.MethodInvocationContext<?, ?> context) protected <K> @Nullable io.micronaut.data.repository.jpa.criteria.QuerySpecification<K>getQuerySpecification(io.micronaut.aop.MethodInvocationContext<?, ?> context) FindQuerySpecificationin context.protected <K> @Nullable io.micronaut.data.repository.jpa.criteria.UpdateSpecification<K>getUpdateSpecification(io.micronaut.aop.MethodInvocationContext<?, ?> context) FindUpdateSpecificationin context.Methods inherited from class io.micronaut.data.runtime.intercept.AbstractQueryInterceptor
convertOne, convertOne, count, findEntitiesParameter, findEntityParameter, getDeleteAllBatchOperation, getDeleteBatchOperation, getDeleteBatchOperation, getDeleteOperation, getDeleteReturningBatchOperation, getDeleteReturningOperation, getEntitiesParameter, getEntityParameter, getInsertBatchOperation, getInsertBatchOperation, getInsertOperation, getInsertOperation, getLimit, getOffset, getPageableInRole, getPagedQuery, getParameterInRole, getParameterValueMap, getRequiredEntity, getRequiredParameterInRole, getRequiredRootEntity, getReturnType, getUpdateAllBatchOperation, getUpdateOperation, getUpdateOperation, instantiateEntity, isNullable, isNumber, prepareCountQuery, prepareQuery, validateNullArgumentsMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.micronaut.data.intercept.DataInterceptor
intercept
-
Field Details
-
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:AbstractQueryInterceptorResolves thePageablefor the given context.- Overrides:
getPageablein classAbstractQueryInterceptor<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) FindQuerySpecificationin 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) FindCriteriaQueryBuilderorQuerySpecificationin context.- Type Parameters:
K- the result type- Parameters:
context- The contextjoinPaths- 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) FindDeleteSpecificationin 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) FindCriteriaDeleteBuilderorQuerySpecificationin 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) FindUpdateSpecificationin 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) FindCriteriaUpdateBuilderorQuerySpecificationin context.- Type Parameters:
K- the result type- Parameters:
context- The context- Returns:
- found specification
-