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:
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
- Author:
- Denis Stepanov
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected jakarta.persistence.criteria.CriteriaBuilderprotected final CriteriaRepositoryOperationsprotected static final StringFields inherited from class io.micronaut.data.runtime.intercept.AbstractQueryInterceptor
conversionService, operations, preparedQueryResolver -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAbstractSpecificationInterceptor(RepositoryOperations operations) Default constructor. -
Method Summary
Modifier and TypeMethodDescriptionprotected final PageableapplyPaginationAndSort(Pageable pageable, jakarta.persistence.criteria.CriteriaQuery<?> criteriaQuery, boolean singleResult) protected final @NonNull jakarta.persistence.criteria.CriteriaQuery<Long> buildCountQuery(RepositoryMethodKey methodKey, io.micronaut.aop.MethodInvocationContext<?, ?> context) protected final <E> @NonNull jakarta.persistence.criteria.CriteriaDelete<E> buildDeleteQuery(io.micronaut.aop.MethodInvocationContext<?, ?> context) protected final @NonNull jakarta.persistence.criteria.CriteriaQuery<Object> buildExistsQuery(RepositoryMethodKey methodKey, io.micronaut.aop.MethodInvocationContext<?, ?> context) protected final jakarta.persistence.criteria.CriteriaQuery<jakarta.persistence.Tuple> buildIdsQuery(RepositoryMethodKey methodKey, io.micronaut.aop.MethodInvocationContext<?, ?> context, Sort sort) protected final @NonNull jakarta.persistence.criteria.CriteriaQuery<Object> buildQuery(RepositoryMethodKey methodKey, io.micronaut.aop.MethodInvocationContext<?, ?> context) protected final <E> @NonNull jakarta.persistence.criteria.CriteriaUpdate<E> buildUpdateQuery(io.micronaut.aop.MethodInvocationContext<?, ?> context) protected final <B> List<B> findAll(RepositoryMethodKey methodKey, io.micronaut.aop.MethodInvocationContext<?, ?> context, Pageable pageable, jakarta.persistence.criteria.CriteriaQuery<B> criteriaQuery) protected @NonNull CriteriaQueryBuilder<Long> getCountCriteriaQueryBuilder(io.micronaut.aop.MethodInvocationContext<?, ?> context, Set<JoinPath> joinPaths, Class<?> rootEntity) FindCriteriaQueryBuilderorQuerySpecificationin context.protected <K> @NonNull CriteriaDeleteBuilder<K> getCriteriaDeleteBuilder(io.micronaut.aop.MethodInvocationContext<?, ?> context, Class<K> rootEntity) FindCriteriaDeleteBuilderorQuerySpecificationin context.protected final <K> @NonNull CriteriaQueryBuilder<Object> getCriteriaQueryBuilder(io.micronaut.aop.MethodInvocationContext<?, ?> context, Set<JoinPath> joinPaths, Class<K> rootEntity) FindCriteriaQueryBuilderorQuerySpecificationin context.protected <K> @NonNull CriteriaUpdateBuilder<K> getCriteriaUpdateBuilder(io.micronaut.aop.MethodInvocationContext<?, ?> context, Class<K> rootEntity) FindCriteriaUpdateBuilderorQuerySpecificationin context.protected <K> @Nullable DeleteSpecification<K> getDeleteSpecification(io.micronaut.aop.MethodInvocationContext<?, ?> context, Class<K> rootEntity) FindDeleteSpecificationin context.protected final jakarta.persistence.criteria.Expression<?> getIdExpression(jakarta.persistence.criteria.Root<?> root) protected final @NonNull CriteriaQueryBuilder<jakarta.persistence.Tuple> getIdsCriteriaQueryBuilder(io.micronaut.aop.MethodInvocationContext<?, ?> context, Set<JoinPath> joinPaths, Sort sort, Class<?> rootEntity) getMethodJoinPaths(RepositoryMethodKey methodKey, io.micronaut.aop.MethodInvocationContext<?, ?> context) protected PageablegetPageable(io.micronaut.aop.MethodInvocationContext<?, ?> context) Resolves thePageablefor the given context.protected final @NonNull QueryBuildergetQueryBuilder(RepositoryMethodKey methodKey, io.micronaut.aop.MethodInvocationContext<?, ?> context) protected <K> @Nullable QuerySpecification<K> getQuerySpecification(io.micronaut.aop.MethodInvocationContext<?, ?> context, Class<?> rootEntity) FindQuerySpecificationin context.protected <K> @Nullable UpdateSpecification<K> getUpdateSpecification(io.micronaut.aop.MethodInvocationContext<?, ?> context, Class<K> rootEntity) 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, getParameterInRole, getParametersInRole, getParametersInRole, getParameterValueMap, getRequiredEntity, getRequiredParameterInRole, getRequiredRootEntity, getReturnType, getUpdateAllBatchOperation, getUpdateOperation, getUpdateOperation, hasReturnTypeInRole, instantiateEntity, 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
-
criteriaBuilder
protected jakarta.persistence.criteria.CriteriaBuilder criteriaBuilder
-
-
Constructor Details
-
AbstractSpecificationInterceptor
Default constructor.- Parameters:
operations- The operations
-
-
Method Details
-
getPageable
Description copied from class:AbstractQueryInterceptorResolves thePageablefor the given context.- Overrides:
getPageablein classAbstractQueryInterceptor<T,R> - Parameters:
context- The pageable- Returns:
- The pageable or null
-
findAll
protected final <B> List<B> findAll(RepositoryMethodKey methodKey, io.micronaut.aop.MethodInvocationContext<?, ?> context, Pageable pageable, jakarta.persistence.criteria.CriteriaQuery<B> criteriaQuery) -
getMethodJoinPaths
protected final Set<JoinPath> getMethodJoinPaths(RepositoryMethodKey methodKey, io.micronaut.aop.MethodInvocationContext<?, ?> context) -
getQueryBuilder
protected final @NonNull QueryBuilder getQueryBuilder(RepositoryMethodKey methodKey, io.micronaut.aop.MethodInvocationContext<?, ?> context) -
buildExistsQuery
protected final @NonNull jakarta.persistence.criteria.CriteriaQuery<Object> buildExistsQuery(RepositoryMethodKey methodKey, io.micronaut.aop.MethodInvocationContext<?, ?> context) -
buildUpdateQuery
protected final <E> @NonNull jakarta.persistence.criteria.CriteriaUpdate<E> buildUpdateQuery(io.micronaut.aop.MethodInvocationContext<?, ?> context) -
buildDeleteQuery
protected final <E> @NonNull jakarta.persistence.criteria.CriteriaDelete<E> buildDeleteQuery(io.micronaut.aop.MethodInvocationContext<?, ?> context) -
buildCountQuery
protected final @NonNull jakarta.persistence.criteria.CriteriaQuery<Long> buildCountQuery(RepositoryMethodKey methodKey, io.micronaut.aop.MethodInvocationContext<?, ?> context) -
buildQuery
protected final @NonNull jakarta.persistence.criteria.CriteriaQuery<Object> buildQuery(RepositoryMethodKey methodKey, io.micronaut.aop.MethodInvocationContext<?, ?> context) -
applyPaginationAndSort
-
buildIdsQuery
protected final jakarta.persistence.criteria.CriteriaQuery<jakarta.persistence.Tuple> buildIdsQuery(RepositoryMethodKey methodKey, io.micronaut.aop.MethodInvocationContext<?, ?> context, Sort sort) -
getQuerySpecification
protected <K> @Nullable QuerySpecification<K> getQuerySpecification(io.micronaut.aop.MethodInvocationContext<?, ?> context, Class<?> rootEntity) FindQuerySpecificationin context.- Type Parameters:
K- the specification entity root type- Parameters:
context- The contextrootEntity- The root entity- Returns:
- found specification
-
getCriteriaQueryBuilder
protected final <K> @NonNull CriteriaQueryBuilder<Object> getCriteriaQueryBuilder(io.micronaut.aop.MethodInvocationContext<?, ?> context, Set<JoinPath> joinPaths, Class<K> rootEntity) FindCriteriaQueryBuilderorQuerySpecificationin context.- Type Parameters:
K- the result type- Parameters:
context- The contextjoinPaths- The join fetch pathsrootEntity- The join fetch paths- Returns:
- found specification
-
getIdsCriteriaQueryBuilder
protected final @NonNull CriteriaQueryBuilder<jakarta.persistence.Tuple> getIdsCriteriaQueryBuilder(io.micronaut.aop.MethodInvocationContext<?, ?> context, Set<JoinPath> joinPaths, Sort sort, Class<?> rootEntity) -
getCountCriteriaQueryBuilder
protected @NonNull CriteriaQueryBuilder<Long> getCountCriteriaQueryBuilder(io.micronaut.aop.MethodInvocationContext<?, ?> context, Set<JoinPath> joinPaths, Class<?> rootEntity) FindCriteriaQueryBuilderorQuerySpecificationin context.- Parameters:
context- The contextjoinPaths- The join fetch pathsrootEntity- The root entity- Returns:
- found specification
-
getIdExpression
protected final jakarta.persistence.criteria.Expression<?> getIdExpression(jakarta.persistence.criteria.Root<?> root) -
getDeleteSpecification
protected <K> @Nullable DeleteSpecification<K> getDeleteSpecification(io.micronaut.aop.MethodInvocationContext<?, ?> context, Class<K> rootEntity) FindDeleteSpecificationin context.- Type Parameters:
K- the specification entity root type- Parameters:
context- The contextrootEntity- The rootEntity- Returns:
- found specification
-
getCriteriaDeleteBuilder
protected <K> @NonNull CriteriaDeleteBuilder<K> getCriteriaDeleteBuilder(io.micronaut.aop.MethodInvocationContext<?, ?> context, Class<K> rootEntity) FindCriteriaDeleteBuilderorQuerySpecificationin context.- Type Parameters:
K- the result type- Parameters:
context- The contextrootEntity- The rootEntity- Returns:
- found specification
-
getUpdateSpecification
protected <K> @Nullable UpdateSpecification<K> getUpdateSpecification(io.micronaut.aop.MethodInvocationContext<?, ?> context, Class<K> rootEntity) FindUpdateSpecificationin context.- Type Parameters:
K- the specification entity root type- Parameters:
context- The contextrootEntity- The root entity- Returns:
- found specification
-
getCriteriaUpdateBuilder
protected <K> @NonNull CriteriaUpdateBuilder<K> getCriteriaUpdateBuilder(io.micronaut.aop.MethodInvocationContext<?, ?> context, Class<K> rootEntity) FindCriteriaUpdateBuilderorQuerySpecificationin context.- Type Parameters:
K- the result type- Parameters:
context- The contextrootEntity- The rootEntity- Returns:
- found specification
-