Class AbstractSqmSelectQuery<T>
- java.lang.Object
-
- org.hibernate.query.sqm.tree.AbstractSqmNode
-
- org.hibernate.query.sqm.tree.select.AbstractSqmSelectQuery<T>
-
- All Implemented Interfaces:
AbstractQuery<T>,CommonAbstractCriteria,Serializable,JpaCriteriaBase,JpaCriteriaNode,JpaCteContainer,JpaSelectCriteria<T>,SqmCteContainer,SqmSelectQuery<T>,SqmNode,SqmQuery<T>
- Direct Known Subclasses:
SqmSelectStatement,SqmSubQuery
public abstract class AbstractSqmSelectQuery<T> extends AbstractSqmNode implements SqmSelectQuery<T>
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Modifier Constructor Description AbstractSqmSelectQuery(Class<T> resultType, NodeBuilder builder)protectedAbstractSqmSelectQuery(NodeBuilder builder, Map<String,SqmCteStatement<?>> cteStatements, Class<T> resultType)AbstractSqmSelectQuery(SqmQueryPart<T> queryPart, Class<T> resultType, NodeBuilder builder)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidappendHqlString(StringBuilder sb)protected Map<String,SqmCteStatement<?>>copyCteStatements(SqmCopyContext context)SqmSelectQuery<T>distinct(boolean distinct)<X> SqmDerivedRoot<X>from(Subquery<X> subquery)Create and add a query root corresponding to the given subquery, forming a cartesian product with any existing roots.<X> SqmRoot<X>from(EntityType<X> entityType)<X> SqmRoot<X>from(Class<X> entityClass)<X> JpaRoot<X>from(JpaCteCriteria<X> cte)Create and add a query root corresponding to the given cte, forming a cartesian product with any existing roots.<X> JpaCteCriteria<X>getCteCriteria(String cteName)Returns a CTE that is registered by the given name on this container, or any of its parents.Collection<? extends JpaCteCriteria<?>>getCteCriterias()Returns the CTEs that are registered on this container.SqmCteStatement<?>getCteStatement(String cteLabel)Collection<SqmCteStatement<?>>getCteStatements()List<Expression<?>>getGroupList()SqmPredicategetGroupRestriction()SqmQueryPart<T>getQueryPart()The query structure.SqmQuerySpec<T>getQuerySpec()The query structure.SqmPredicategetRestriction()protected Selection<? extends T>getResultSelection(Selection<?>[] selections)Class<T>getResultType()Set<Root<?>>getRoots()JpaSelection<T>getSelection()SqmSelectQuery<T>groupBy(Expression<?>... expressions)SqmSelectQuery<T>groupBy(List<Expression<?>> grouping)SqmSelectQuery<T>having(Expression<Boolean> booleanExpression)SqmSelectQuery<T>having(Predicate... predicates)booleanisDistinct()voidsetQueryPart(SqmQueryPart<T> sqmQueryPart)protected voidsetResultType(Class<T> resultType)SqmSelectQuery<T>where(Expression<Boolean> restriction)SqmSelectQuery<T>where(Predicate... restrictions)<X> JpaCteCriteria<X>with(AbstractQuery<X> criteria)Registers the givenCriteriaQueryand returns aJpaCteCriteria, which can be used for querying.<X> JpaCteCriteria<X>with(String name, AbstractQuery<X> criteria)LikeJpaCteContainer.with(AbstractQuery)but assigns an explicit CTE name.<X> JpaCteCriteria<X>withRecursiveUnionAll(AbstractQuery<X> baseCriteria, Function<JpaCteCriteria<X>,AbstractQuery<X>> recursiveCriteriaProducer)Allows to register a recursive CTE.<X> JpaCteCriteria<X>withRecursiveUnionAll(String name, AbstractQuery<X> baseCriteria, Function<JpaCteCriteria<X>,AbstractQuery<X>> recursiveCriteriaProducer)LikeJpaCteContainer.withRecursiveUnionAll(AbstractQuery, Function)but assigns an explicit CTE name.<X> JpaCteCriteria<X>withRecursiveUnionDistinct(AbstractQuery<X> baseCriteria, Function<JpaCteCriteria<X>,AbstractQuery<X>> recursiveCriteriaProducer)Allows to register a recursive CTE.<X> JpaCteCriteria<X>withRecursiveUnionDistinct(String name, AbstractQuery<X> baseCriteria, Function<JpaCteCriteria<X>,AbstractQuery<X>> recursiveCriteriaProducer)LikeJpaCteContainer.withRecursiveUnionDistinct(AbstractQuery, Function)but assigns an explicit CTE name.-
Methods inherited from class org.hibernate.query.sqm.tree.AbstractSqmNode
nodeBuilder
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.hibernate.query.criteria.JpaCriteriaBase
subquery
-
Methods inherited from interface org.hibernate.query.sqm.tree.SqmNode
asLoggableText, nodeBuilder
-
Methods inherited from interface org.hibernate.query.sqm.tree.select.SqmSelectQuery
copy
-
-
-
-
Constructor Detail
-
AbstractSqmSelectQuery
public AbstractSqmSelectQuery(Class<T> resultType, NodeBuilder builder)
-
AbstractSqmSelectQuery
public AbstractSqmSelectQuery(SqmQueryPart<T> queryPart, Class<T> resultType, NodeBuilder builder)
-
AbstractSqmSelectQuery
protected AbstractSqmSelectQuery(NodeBuilder builder, Map<String,SqmCteStatement<?>> cteStatements, Class<T> resultType)
-
-
Method Detail
-
copyCteStatements
protected Map<String,SqmCteStatement<?>> copyCteStatements(SqmCopyContext context)
-
getCteStatements
public Collection<SqmCteStatement<?>> getCteStatements()
- Specified by:
getCteStatementsin interfaceSqmCteContainer
-
getCteStatement
public SqmCteStatement<?> getCteStatement(String cteLabel)
- Specified by:
getCteStatementin interfaceSqmCteContainer
-
getCteCriterias
public Collection<? extends JpaCteCriteria<?>> getCteCriterias()
Description copied from interface:JpaCteContainerReturns the CTEs that are registered on this container.- Specified by:
getCteCriteriasin interfaceJpaCteContainer
-
getCteCriteria
public <X> JpaCteCriteria<X> getCteCriteria(String cteName)
Description copied from interface:JpaCteContainerReturns a CTE that is registered by the given name on this container, or any of its parents.- Specified by:
getCteCriteriain interfaceJpaCteContainer
-
with
public <X> JpaCteCriteria<X> with(AbstractQuery<X> criteria)
Description copied from interface:JpaCteContainerRegisters the givenCriteriaQueryand returns aJpaCteCriteria, which can be used for querying.- Specified by:
within interfaceJpaCteContainer- See Also:
JpaSelectCriteria.from(JpaCteCriteria),JpaFrom.join(JpaCteCriteria, SqmJoinType)
-
withRecursiveUnionAll
public <X> JpaCteCriteria<X> withRecursiveUnionAll(AbstractQuery<X> baseCriteria, Function<JpaCteCriteria<X>,AbstractQuery<X>> recursiveCriteriaProducer)
Description copied from interface:JpaCteContainerAllows to register a recursive CTE. The baseCriteriaQueryserves for the structure of theJpaCteCriteria, which is made available in the recursive criteria producer function, so that the recursiveCriteriaQueryis able to refer to the CTE again.- Specified by:
withRecursiveUnionAllin interfaceJpaCteContainer- See Also:
JpaSelectCriteria.from(JpaCteCriteria),JpaFrom.join(JpaCteCriteria, SqmJoinType)
-
withRecursiveUnionDistinct
public <X> JpaCteCriteria<X> withRecursiveUnionDistinct(AbstractQuery<X> baseCriteria, Function<JpaCteCriteria<X>,AbstractQuery<X>> recursiveCriteriaProducer)
Description copied from interface:JpaCteContainerAllows to register a recursive CTE. The baseCriteriaQueryserves for the structure of theJpaCteCriteria, which is made available in the recursive criteria producer function, so that the recursiveCriteriaQueryis able to refer to the CTE again.- Specified by:
withRecursiveUnionDistinctin interfaceJpaCteContainer- See Also:
JpaSelectCriteria.from(JpaCteCriteria),JpaFrom.join(JpaCteCriteria, SqmJoinType)
-
with
public <X> JpaCteCriteria<X> with(String name, AbstractQuery<X> criteria)
Description copied from interface:JpaCteContainerLikeJpaCteContainer.with(AbstractQuery)but assigns an explicit CTE name.- Specified by:
within interfaceJpaCteContainer
-
withRecursiveUnionAll
public <X> JpaCteCriteria<X> withRecursiveUnionAll(String name, AbstractQuery<X> baseCriteria, Function<JpaCteCriteria<X>,AbstractQuery<X>> recursiveCriteriaProducer)
Description copied from interface:JpaCteContainerLikeJpaCteContainer.withRecursiveUnionAll(AbstractQuery, Function)but assigns an explicit CTE name.- Specified by:
withRecursiveUnionAllin interfaceJpaCteContainer
-
withRecursiveUnionDistinct
public <X> JpaCteCriteria<X> withRecursiveUnionDistinct(String name, AbstractQuery<X> baseCriteria, Function<JpaCteCriteria<X>,AbstractQuery<X>> recursiveCriteriaProducer)
Description copied from interface:JpaCteContainerLikeJpaCteContainer.withRecursiveUnionDistinct(AbstractQuery, Function)but assigns an explicit CTE name.- Specified by:
withRecursiveUnionDistinctin interfaceJpaCteContainer
-
getResultType
public Class<T> getResultType()
- Specified by:
getResultTypein interfaceAbstractQuery<T>
-
getQuerySpec
public SqmQuerySpec<T> getQuerySpec()
Description copied from interface:JpaSelectCriteriaThe query structure. SeeJpaQueryStructurefor details- Specified by:
getQuerySpecin interfaceJpaSelectCriteria<T>- Specified by:
getQuerySpecin interfaceSqmSelectQuery<T>
-
getQueryPart
public SqmQueryPart<T> getQueryPart()
Description copied from interface:JpaSelectCriteriaThe query structure. SeeJpaQueryStructurefor details- Specified by:
getQueryPartin interfaceJpaSelectCriteria<T>- Specified by:
getQueryPartin interfaceSqmSelectQuery<T>
-
setQueryPart
public void setQueryPart(SqmQueryPart<T> sqmQueryPart)
-
getRoots
public Set<Root<?>> getRoots()
- Specified by:
getRootsin interfaceAbstractQuery<T>
-
from
public <X> SqmRoot<X> from(Class<X> entityClass)
- Specified by:
fromin interfaceAbstractQuery<T>- Specified by:
fromin interfaceJpaSelectCriteria<T>
-
from
public <X> SqmDerivedRoot<X> from(Subquery<X> subquery)
Description copied from interface:JpaSelectCriteriaCreate and add a query root corresponding to the given subquery, forming a cartesian product with any existing roots.- Specified by:
fromin interfaceJpaSelectCriteria<T>- Parameters:
subquery- the subquery- Returns:
- query root corresponding to the given subquery
-
from
public <X> JpaRoot<X> from(JpaCteCriteria<X> cte)
Description copied from interface:JpaSelectCriteriaCreate and add a query root corresponding to the given cte, forming a cartesian product with any existing roots.- Specified by:
fromin interfaceJpaSelectCriteria<T>- Parameters:
cte- the cte criteria- Returns:
- query root corresponding to the given cte
-
from
public <X> SqmRoot<X> from(EntityType<X> entityType)
- Specified by:
fromin interfaceAbstractQuery<T>- Specified by:
fromin interfaceJpaSelectCriteria<T>
-
isDistinct
public boolean isDistinct()
- Specified by:
isDistinctin interfaceAbstractQuery<T>
-
distinct
public SqmSelectQuery<T> distinct(boolean distinct)
- Specified by:
distinctin interfaceAbstractQuery<T>- Specified by:
distinctin interfaceJpaSelectCriteria<T>- Specified by:
distinctin interfaceSqmSelectQuery<T>
-
getSelection
public JpaSelection<T> getSelection()
- Specified by:
getSelectionin interfaceAbstractQuery<T>- Specified by:
getSelectionin interfaceJpaSelectCriteria<T>
-
getRestriction
public SqmPredicate getRestriction()
- Specified by:
getRestrictionin interfaceCommonAbstractCriteria- Specified by:
getRestrictionin interfaceJpaCriteriaBase- Specified by:
getRestrictionin interfaceJpaSelectCriteria<T>
-
where
public SqmSelectQuery<T> where(Expression<Boolean> restriction)
- Specified by:
wherein interfaceAbstractQuery<T>- Specified by:
wherein interfaceJpaSelectCriteria<T>
-
where
public SqmSelectQuery<T> where(Predicate... restrictions)
- Specified by:
wherein interfaceAbstractQuery<T>- Specified by:
wherein interfaceJpaSelectCriteria<T>
-
getGroupList
public List<Expression<?>> getGroupList()
- Specified by:
getGroupListin interfaceAbstractQuery<T>
-
groupBy
public SqmSelectQuery<T> groupBy(Expression<?>... expressions)
- Specified by:
groupByin interfaceAbstractQuery<T>- Specified by:
groupByin interfaceJpaSelectCriteria<T>
-
groupBy
public SqmSelectQuery<T> groupBy(List<Expression<?>> grouping)
- Specified by:
groupByin interfaceAbstractQuery<T>- Specified by:
groupByin interfaceJpaSelectCriteria<T>
-
getGroupRestriction
public SqmPredicate getGroupRestriction()
- Specified by:
getGroupRestrictionin interfaceAbstractQuery<T>- Specified by:
getGroupRestrictionin interfaceJpaSelectCriteria<T>
-
having
public SqmSelectQuery<T> having(Expression<Boolean> booleanExpression)
- Specified by:
havingin interfaceAbstractQuery<T>- Specified by:
havingin interfaceJpaSelectCriteria<T>
-
having
public SqmSelectQuery<T> having(Predicate... predicates)
- Specified by:
havingin interfaceAbstractQuery<T>- Specified by:
havingin interfaceJpaSelectCriteria<T>
-
appendHqlString
public void appendHqlString(StringBuilder sb)
-
-