Package org.hibernate.query.sqm.tree
Class AbstractSqmDmlStatement<E>
java.lang.Object
org.hibernate.query.sqm.tree.AbstractSqmNode
org.hibernate.query.sqm.tree.AbstractSqmStatement<E>
org.hibernate.query.sqm.tree.AbstractSqmDmlStatement<E>
- All Implemented Interfaces:
CommonAbstractCriteria
,Serializable
,JpaCriteriaBase
,JpaCriteriaNode
,JpaCteContainer
,JpaManipulationCriteria<E>
,JpaQueryableCriteria<E>
,ParameterCollector
,SqmCteContainer
,SqmDmlStatement<E>
,SqmNode
,SqmQuery<E>
,SqmStatement<E>
,SqmVisitableNode
- Direct Known Subclasses:
AbstractSqmInsertStatement
,AbstractSqmRestrictedDmlStatement
public abstract class AbstractSqmDmlStatement<E>
extends AbstractSqmStatement<E>
implements SqmDmlStatement<E>
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.hibernate.query.sqm.tree.SqmStatement
SqmStatement.ParameterResolutions
-
Field Summary
-
Constructor Summary
ConstructorsConstructorDescriptionAbstractSqmDmlStatement
(NodeBuilder builder, SqmQuerySource querySource, Set<SqmParameter<?>> parameters, Map<String, SqmCteStatement<?>> cteStatements, SqmRoot<E> target) AbstractSqmDmlStatement
(SqmQuerySource querySource, NodeBuilder nodeBuilder) AbstractSqmDmlStatement
(SqmRoot<E> target, SqmQuerySource querySource, NodeBuilder nodeBuilder) -
Method Summary
Modifier and TypeMethodDescriptionprotected void
protected Map<String,
SqmCteStatement<?>> copyCteStatements
(SqmCopyContext context) <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) Get the root path that is the target of the DML statement.protected void
putAllCtes
(SqmCteContainer cteContainer) void
Set the root path<U> SqmSubQuery<U>
abstract void
<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.<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.AbstractSqmStatement
addParameter, copyParameters, getParameters, getQuerySource, getSqmParameters, resolveParameters
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.CommonAbstractCriteria
getParameters, subquery
Methods inherited from interface org.hibernate.query.criteria.JpaCriteriaBase
getRestriction
Methods inherited from interface org.hibernate.query.sqm.tree.SqmNode
asLoggableText, nodeBuilder
Methods inherited from interface org.hibernate.query.sqm.tree.SqmStatement
copy, getQuerySource, getSqmParameters, resolveParameters
Methods inherited from interface org.hibernate.query.sqm.tree.SqmVisitableNode
accept, appendHqlString, toHqlString
-
Constructor Details
-
AbstractSqmDmlStatement
-
AbstractSqmDmlStatement
public AbstractSqmDmlStatement(SqmRoot<E> target, SqmQuerySource querySource, NodeBuilder nodeBuilder) -
AbstractSqmDmlStatement
public AbstractSqmDmlStatement(NodeBuilder builder, SqmQuerySource querySource, Set<SqmParameter<?>> parameters, Map<String, SqmCteStatement<?>> cteStatements, SqmRoot<E> target)
-
-
Method Details
-
copyCteStatements
-
putAllCtes
-
validate
-
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
-
getTarget
Description copied from interface:SqmDmlStatement
Get the root path that is the target of the DML statement.- Specified by:
getTarget
in interfaceJpaManipulationCriteria<E>
- Specified by:
getTarget
in interfaceSqmDmlStatement<E>
-
setTarget
Description copied from interface:SqmDmlStatement
Set the root path- Specified by:
setTarget
in interfaceJpaManipulationCriteria<E>
- Specified by:
setTarget
in interfaceSqmDmlStatement<E>
-
subquery
- Specified by:
subquery
in interfaceCommonAbstractCriteria
- Specified by:
subquery
in interfaceJpaCriteriaBase
-
appendHqlCteString
-