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:
-
Field Summary
-
Constructor Summary
ConstructorsModifierConstructorDescriptionAbstractSqmSelectQuery
(Class<T> resultType, NodeBuilder builder) protected
AbstractSqmSelectQuery
(NodeBuilder builder, Map<String, SqmCteStatement<?>> cteStatements, Class<T> resultType) AbstractSqmSelectQuery
(SqmQueryPart<T> queryPart, Class<T> resultType, NodeBuilder builder) AbstractSqmSelectQuery
(SqmQueryPart<T> queryPart, Map<String, SqmCteStatement<?>> cteStatements, Class<T> resultType, NodeBuilder builder) -
Method Summary
Modifier and TypeMethodDescriptionvoid
protected Map<String,
SqmCteStatement<?>> copyCteStatements
(SqmCopyContext context) distinct
(boolean distinct) <X> SqmDerivedRoot<X>
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>
<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> JpaFunctionRoot<X>
from
(JpaSetReturningFunction<X> function) Create and add a query root corresponding to the given set-returning function, 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<?>>
Returns the CTEs that are registered on this container.getCteStatement
(String cteLabel) List<Expression<?>>
The query structure.The query structure.getResultSelection
(Selection<?>[] selections) getRoots()
groupBy
(Expression<?>... expressions) groupBy
(List<Expression<?>> grouping) having
(Expression<Boolean> booleanExpression) boolean
void
setQueryPart
(SqmQueryPart<T> sqmQueryPart) where
(Expression<Boolean> restriction) <X> JpaCteCriteria<X>
with
(AbstractQuery<X> criteria) Registers the givenCriteriaQuery
and 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.protected <X> JpaCteCriteria<X>
withInternal
(String name, AbstractQuery<X> criteria) protected <X> JpaCteCriteria<X>
withInternal
(String name, AbstractQuery<X> baseCriteria, boolean unionDistinct, Function<JpaCteCriteria<X>, AbstractQuery<X>> recursiveCriteriaProducer) <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 jakarta.persistence.criteria.AbstractQuery
having, where
Methods inherited from interface jakarta.persistence.criteria.CommonAbstractCriteria
getParameters, subquery
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 Details
-
AbstractSqmSelectQuery
-
AbstractSqmSelectQuery
-
AbstractSqmSelectQuery
protected AbstractSqmSelectQuery(NodeBuilder builder, Map<String, SqmCteStatement<?>> cteStatements, Class<T> resultType) -
AbstractSqmSelectQuery
public AbstractSqmSelectQuery(SqmQueryPart<T> queryPart, Map<String, SqmCteStatement<?>> cteStatements, Class<T> resultType, NodeBuilder builder)
-
-
Method Details
-
copyCteStatements
-
getCteStatements
- Specified by:
getCteStatements
in interfaceSqmCteContainer
-
getCteStatement
- Specified by:
getCteStatement
in interfaceSqmCteContainer
-
getCteCriterias
Description copied from interface:JpaCteContainer
Returns the CTEs that are registered on this container.- Specified by:
getCteCriterias
in interfaceJpaCteContainer
-
getCteCriteria
Description copied from interface:JpaCteContainer
Returns a CTE that is registered by the given name on this container, or any of its parents.- Specified by:
getCteCriteria
in interfaceJpaCteContainer
-
with
Description copied from interface:JpaCteContainer
Registers the givenCriteriaQuery
and returns aJpaCteCriteria
, which can be used for querying.- Specified by:
with
in interfaceJpaCteContainer
- See Also:
-
withRecursiveUnionAll
public <X> JpaCteCriteria<X> withRecursiveUnionAll(AbstractQuery<X> baseCriteria, Function<JpaCteCriteria<X>, AbstractQuery<X>> recursiveCriteriaProducer) Description copied from interface:JpaCteContainer
Allows to register a recursive CTE. The baseCriteriaQuery
serves for the structure of theJpaCteCriteria
, which is made available in the recursive criteria producer function, so that the recursiveCriteriaQuery
is able to refer to the CTE again.- Specified by:
withRecursiveUnionAll
in interfaceJpaCteContainer
- See Also:
-
withRecursiveUnionDistinct
public <X> JpaCteCriteria<X> withRecursiveUnionDistinct(AbstractQuery<X> baseCriteria, Function<JpaCteCriteria<X>, AbstractQuery<X>> recursiveCriteriaProducer) Description copied from interface:JpaCteContainer
Allows to register a recursive CTE. The baseCriteriaQuery
serves for the structure of theJpaCteCriteria
, which is made available in the recursive criteria producer function, so that the recursiveCriteriaQuery
is able to refer to the CTE again.- Specified by:
withRecursiveUnionDistinct
in interfaceJpaCteContainer
- See Also:
-
with
Description copied from interface:JpaCteContainer
LikeJpaCteContainer.with(AbstractQuery)
but assigns an explicit CTE name.- Specified by:
with
in interfaceJpaCteContainer
-
withRecursiveUnionAll
public <X> JpaCteCriteria<X> withRecursiveUnionAll(String name, AbstractQuery<X> baseCriteria, Function<JpaCteCriteria<X>, AbstractQuery<X>> recursiveCriteriaProducer) Description copied from interface:JpaCteContainer
LikeJpaCteContainer.withRecursiveUnionAll(AbstractQuery, Function)
but assigns an explicit CTE name.- Specified by:
withRecursiveUnionAll
in interfaceJpaCteContainer
-
withRecursiveUnionDistinct
public <X> JpaCteCriteria<X> withRecursiveUnionDistinct(String name, AbstractQuery<X> baseCriteria, Function<JpaCteCriteria<X>, AbstractQuery<X>> recursiveCriteriaProducer) Description copied from interface:JpaCteContainer
LikeJpaCteContainer.withRecursiveUnionDistinct(AbstractQuery, Function)
but assigns an explicit CTE name.- Specified by:
withRecursiveUnionDistinct
in interfaceJpaCteContainer
-
withInternal
-
withInternal
protected <X> JpaCteCriteria<X> withInternal(String name, AbstractQuery<X> baseCriteria, boolean unionDistinct, Function<JpaCteCriteria<X>, AbstractQuery<X>> recursiveCriteriaProducer) -
getResultType
- Specified by:
getResultType
in interfaceAbstractQuery<T>
-
getQuerySpec
Description copied from interface:JpaSelectCriteria
The query structure. SeeJpaQueryStructure
for details- Specified by:
getQuerySpec
in interfaceJpaSelectCriteria<T>
- Specified by:
getQuerySpec
in interfaceSqmSelectQuery<T>
-
getQueryPart
Description copied from interface:JpaSelectCriteria
The query structure. SeeJpaQueryStructure
for details- Specified by:
getQueryPart
in interfaceJpaSelectCriteria<T>
- Specified by:
getQueryPart
in interfaceSqmSelectQuery<T>
-
setQueryPart
-
getRoots
- Specified by:
getRoots
in interfaceAbstractQuery<T>
-
getRootList
-
from
- Specified by:
from
in interfaceAbstractQuery<T>
- Specified by:
from
in interfaceJpaSelectCriteria<T>
-
from
Description copied from interface:JpaSelectCriteria
Create and add a query root corresponding to the given subquery, forming a cartesian product with any existing roots.- Specified by:
from
in interfaceJpaSelectCriteria<T>
- Parameters:
subquery
- the subquery- Returns:
- query root corresponding to the given subquery
-
from
Description copied from interface:JpaSelectCriteria
Create and add a query root corresponding to the given cte, forming a cartesian product with any existing roots.- Specified by:
from
in interfaceJpaSelectCriteria<T>
- Parameters:
cte
- the cte criteria- Returns:
- query root corresponding to the given cte
-
from
Description copied from interface:JpaSelectCriteria
Create and add a query root corresponding to the given set-returning function, forming a cartesian product with any existing roots.- Specified by:
from
in interfaceJpaSelectCriteria<T>
- Parameters:
function
- the set-returning function- Returns:
- query root corresponding to the given function
-
from
- Specified by:
from
in interfaceAbstractQuery<T>
- Specified by:
from
in interfaceJpaSelectCriteria<T>
-
isDistinct
public boolean isDistinct()- Specified by:
isDistinct
in interfaceAbstractQuery<T>
-
distinct
- Specified by:
distinct
in interfaceAbstractQuery<T>
- Specified by:
distinct
in interfaceJpaSelectCriteria<T>
- Specified by:
distinct
in interfaceSqmSelectQuery<T>
-
getSelection
- Specified by:
getSelection
in interfaceAbstractQuery<T>
- Specified by:
getSelection
in interfaceJpaSelectCriteria<T>
-
getRestriction
- Specified by:
getRestriction
in interfaceCommonAbstractCriteria
- Specified by:
getRestriction
in interfaceJpaCriteriaBase
- Specified by:
getRestriction
in interfaceJpaSelectCriteria<T>
-
where
- Specified by:
where
in interfaceAbstractQuery<T>
- Specified by:
where
in interfaceJpaSelectCriteria<T>
-
where
- Specified by:
where
in interfaceAbstractQuery<T>
- Specified by:
where
in interfaceJpaSelectCriteria<T>
-
getGroupList
- Specified by:
getGroupList
in interfaceAbstractQuery<T>
-
groupBy
- Specified by:
groupBy
in interfaceAbstractQuery<T>
- Specified by:
groupBy
in interfaceJpaSelectCriteria<T>
-
groupBy
- Specified by:
groupBy
in interfaceAbstractQuery<T>
- Specified by:
groupBy
in interfaceJpaSelectCriteria<T>
-
getGroupRestriction
- Specified by:
getGroupRestriction
in interfaceAbstractQuery<T>
- Specified by:
getGroupRestriction
in interfaceJpaSelectCriteria<T>
-
having
- Specified by:
having
in interfaceAbstractQuery<T>
- Specified by:
having
in interfaceJpaSelectCriteria<T>
-
having
- Specified by:
having
in interfaceAbstractQuery<T>
- Specified by:
having
in interfaceJpaSelectCriteria<T>
-
appendHqlString
-
getResultSelection
-