Package com.joutvhu.dynamic.jpa.query
Class DynamicJpaRepositoryQuery
java.lang.Object
org.springframework.data.jpa.repository.query.AbstractJpaQuery
com.joutvhu.dynamic.jpa.query.DynamicJpaRepositoryQuery
- All Implemented Interfaces:
org.springframework.data.repository.query.RepositoryQuery
public class DynamicJpaRepositoryQuery
extends org.springframework.data.jpa.repository.query.AbstractJpaQuery
RepositoryQuery implementation that inspects a DynamicJpaQueryMethod
for the existence of an DynamicQuery annotation and creates a JPA DynamicQuery from it.- Since:
- 2.x.1
-
Constructor Summary
ConstructorsConstructorDescriptionDynamicJpaRepositoryQuery(DynamicJpaQueryMethod method, jakarta.persistence.EntityManager em, org.springframework.data.jpa.repository.QueryRewriter queryRewriter, org.springframework.data.repository.query.QueryMethodEvaluationContextProvider evaluationContextProvider) Creates a newDynamicJpaRepositoryQueryfrom the givenAbstractJpaQuery. -
Method Summary
Modifier and TypeMethodDescriptionprotected StringbuildQuery(com.joutvhu.dynamic.commons.DynamicQueryTemplate template, org.springframework.data.jpa.repository.query.JpaParametersParameterAccessor accessor) protected org.springframework.data.jpa.repository.query.ParameterBinderprotected jakarta.persistence.QuerycreateJpaQuery(String queryString, org.springframework.data.domain.Sort sort, org.springframework.data.domain.Pageable pageable, org.springframework.data.repository.query.ReturnedType returnedType) Creates an appropriate JPA query from anEntityManageraccording to the currentDynamicJpaRepositoryQuerytype.protected jakarta.persistence.QuerydoCreateCountQuery(org.springframework.data.jpa.repository.query.JpaParametersParameterAccessor accessor) protected jakarta.persistence.QuerydoCreateQuery(org.springframework.data.jpa.repository.query.JpaParametersParameterAccessor accessor) protected StringpotentiallyRewriteQuery(String originalQuery, org.springframework.data.domain.Sort sort, org.springframework.data.domain.Pageable pageable) Use theQueryRewriter, potentially rewrite the query, using relevantSortandPageableinformation.protected DynamicBasedStringQuerysetAccessor(org.springframework.data.jpa.repository.query.JpaParametersParameterAccessor accessor) Methods inherited from class org.springframework.data.jpa.repository.query.AbstractJpaQuery
applyHints, applyQueryHint, createCountQuery, createQuery, execute, getEntityManager, getExecution, getMetamodel, getQueryMethod, getTypeToRead
-
Constructor Details
-
DynamicJpaRepositoryQuery
public DynamicJpaRepositoryQuery(DynamicJpaQueryMethod method, jakarta.persistence.EntityManager em, org.springframework.data.jpa.repository.QueryRewriter queryRewriter, org.springframework.data.repository.query.QueryMethodEvaluationContextProvider evaluationContextProvider) Creates a newDynamicJpaRepositoryQueryfrom the givenAbstractJpaQuery.- Parameters:
method- DynamicJpaQueryMethodem- EntityManagerevaluationContextProvider- QueryMethodEvaluationContextProvider
-
-
Method Details
-
buildQuery
protected String buildQuery(com.joutvhu.dynamic.commons.DynamicQueryTemplate template, org.springframework.data.jpa.repository.query.JpaParametersParameterAccessor accessor) -
createBinder
protected org.springframework.data.jpa.repository.query.ParameterBinder createBinder()- Overrides:
createBinderin classorg.springframework.data.jpa.repository.query.AbstractJpaQuery
-
setAccessor
protected DynamicBasedStringQuery setAccessor(org.springframework.data.jpa.repository.query.JpaParametersParameterAccessor accessor) -
doCreateQuery
protected jakarta.persistence.Query doCreateQuery(org.springframework.data.jpa.repository.query.JpaParametersParameterAccessor accessor) - Specified by:
doCreateQueryin classorg.springframework.data.jpa.repository.query.AbstractJpaQuery
-
doCreateCountQuery
protected jakarta.persistence.Query doCreateCountQuery(org.springframework.data.jpa.repository.query.JpaParametersParameterAccessor accessor) - Specified by:
doCreateCountQueryin classorg.springframework.data.jpa.repository.query.AbstractJpaQuery
-
createJpaQuery
protected jakarta.persistence.Query createJpaQuery(String queryString, org.springframework.data.domain.Sort sort, @Nullable org.springframework.data.domain.Pageable pageable, org.springframework.data.repository.query.ReturnedType returnedType) Creates an appropriate JPA query from anEntityManageraccording to the currentDynamicJpaRepositoryQuerytype.- Parameters:
queryString- is queryreturnedType- of method- Returns:
- a
Query
-
potentiallyRewriteQuery
protected String potentiallyRewriteQuery(String originalQuery, org.springframework.data.domain.Sort sort, @Nullable org.springframework.data.domain.Pageable pageable) Use theQueryRewriter, potentially rewrite the query, using relevantSortandPageableinformation.
-