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:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.hibernate.query.sqm.tree.SqmStatement
SqmStatement.ParameterResolutions
-
-
Constructor Summary
Constructors Constructor Description AbstractSqmDmlStatement(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
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected voidappendHqlCteString(StringBuilder sb)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<?>>getCteCriterias()Returns the CTEs that are registered on this container.SqmCteStatement<?>getCteStatement(String cteLabel)Collection<SqmCteStatement<?>>getCteStatements()SqmRoot<E>getTarget()Get the root path that is the target of the DML statement.protected voidputAllCtes(SqmCteContainer cteContainer)voidsetTarget(JpaRoot<E> root)Set the root path<U> SqmSubQuery<U>subquery(Class<U> type)abstract voidvalidate(@Nullable String hql)<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.AbstractSqmStatement
addParameter, copyParameters, 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 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 Detail
-
AbstractSqmDmlStatement
public AbstractSqmDmlStatement(SqmQuerySource querySource, NodeBuilder nodeBuilder)
-
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 Detail
-
copyCteStatements
protected Map<String,SqmCteStatement<?>> copyCteStatements(SqmCopyContext context)
-
putAllCtes
protected void putAllCtes(SqmCteContainer cteContainer)
-
validate
public abstract void validate(@Nullable String hql)
-
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
-
getTarget
public SqmRoot<E> getTarget()
Description copied from interface:SqmDmlStatementGet the root path that is the target of the DML statement.- Specified by:
getTargetin interfaceJpaManipulationCriteria<E>- Specified by:
getTargetin interfaceSqmDmlStatement<E>
-
setTarget
public void setTarget(JpaRoot<E> root)
Description copied from interface:SqmDmlStatementSet the root path- Specified by:
setTargetin interfaceJpaManipulationCriteria<E>- Specified by:
setTargetin interfaceSqmDmlStatement<E>
-
subquery
public <U> SqmSubQuery<U> subquery(Class<U> type)
- Specified by:
subqueryin interfaceCommonAbstractCriteria- Specified by:
subqueryin interfaceJpaCriteriaBase
-
appendHqlCteString
protected void appendHqlCteString(StringBuilder sb)
-
-