Class SqmDerivedJoin<T>
- java.lang.Object
-
- org.hibernate.query.sqm.tree.AbstractSqmNode
-
- org.hibernate.query.sqm.tree.jpa.AbstractJpaTupleElement<T>
-
- org.hibernate.query.sqm.tree.jpa.AbstractJpaSelection<T>
-
- org.hibernate.query.sqm.tree.expression.AbstractSqmExpression<T>
-
- org.hibernate.query.sqm.tree.domain.AbstractSqmPath<T>
-
- org.hibernate.query.sqm.tree.domain.AbstractSqmFrom<O,T>
-
- org.hibernate.query.sqm.tree.domain.AbstractSqmJoin<O,T>
-
- org.hibernate.query.sqm.tree.domain.AbstractSqmQualifiedJoin<T,T>
-
- org.hibernate.query.sqm.tree.from.SqmDerivedJoin<T>
-
- All Implemented Interfaces:
Expression<T>,FetchParent<T,T>,From<T,T>,Path<T>,Selection<T>,TupleElement<T>,Serializable,JpaCriteriaNode,JpaDerivedFrom<T>,JpaDerivedJoin<T>,JpaExpression<T>,JpaFetchParent<T,T>,JpaFrom<T,T>,JpaJoinedFrom<T,T>,JpaPath<T>,JpaSelection<T>,JpaTupleElement<T>,SemanticPathPart,SqmPath<T>,SqmExpression<T>,SqmFrom<T,T>,SqmJoin<T,T>,SqmQualifiedJoin<T,T>,SqmSelectableNode<T>,SqmExpressibleAccessor<T>,SqmNode,SqmTypedNode<T>,SqmVisitableNode
- Direct Known Subclasses:
SqmCorrelatedDerivedJoin
@Incubating public class SqmDerivedJoin<T> extends AbstractSqmQualifiedJoin<T,T> implements JpaDerivedJoin<T>
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Modifier Constructor Description SqmDerivedJoin(SqmSubQuery<T> subQuery, String alias, SqmJoinType joinType, boolean lateral, SqmRoot<?> sqmRoot)protectedSqmDerivedJoin(NavigablePath navigablePath, SqmSubQuery<T> subQuery, boolean lateral, SqmPathSource<T> pathSource, String alias, SqmJoinType joinType, SqmRoot<?> sqmRoot)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <X> Xaccept(SemanticQueryWalker<X> walker)Accept the walker per visitationSqmDerivedJoin<T>copy(SqmCopyContext context)SqmCorrelatedDerivedJoin<T>createCorrelation()SqmRoot<?>findRoot()SqmPath<?>getLhs()Get the left-hand side of this path - may be null, indicating a root, cross-join or entity-joinSqmSubQuery<T>getQueryPart()The subquery part for this derived from node.SqmRoot<?>getRoot()booleanisImplicitlySelectable()When applicable, whether this join should be included in an implicit select clausebooleanisLateral()Specifies whether the subquery part can access previous from node aliases.SqmDerivedJoin<T>on(Expression<Boolean> restriction)SqmDerivedJoin<T>on(Predicate... restrictions)SqmDerivedJoin<T>on(JpaExpression<Boolean> restriction)SqmDerivedJoin<T>on(JpaPredicate... restrictions)<S extends T>
SqmFrom<?,S>treatAs(Class<S> treatJavaType)Support for JPA's explicit (TREAT) down-casting.<S extends T>
SqmFrom<?,S>treatAs(Class<S> treatJavaType, String alias)<S extends T>
SqmFrom<?,S>treatAs(EntityDomainType<S> treatTarget)Support for JPA's explicit (TREAT) down-casting.<S extends T>
SqmFrom<?,S>treatAs(EntityDomainType<S> treatTarget, String alias)-
Methods inherited from class org.hibernate.query.sqm.tree.domain.AbstractSqmQualifiedJoin
applyRestriction, copyTo, getJoinPredicate, getOn, setJoinPredicate
-
Methods inherited from class org.hibernate.query.sqm.tree.domain.AbstractSqmJoin
getSqmJoinType
-
Methods inherited from class org.hibernate.query.sqm.tree.domain.AbstractSqmFrom
addSqmJoin, addTreat, alias, appendHqlString, copyTo, crossJoin, crossJoin, fetch, fetch, fetch, fetch, fetch, fetch, findTreat, getCorrelationParent, getExplicitAlias, getFetches, getJoins, getParentPath, getSqmJoins, getSqmTreats, hasJoins, isCorrelated, join, join, join, join, join, join, join, join, join, join, join, join, join, join, join, join, join, join, join, join, join, join, join, joinCollection, joinCollection, joinLateral, joinLateral, joinList, joinList, joinMap, joinMap, joinSet, joinSet, removeLeftFetchJoins, resolvePathPart, setExplicitAlias, visitSqmJoins
-
Methods inherited from class org.hibernate.query.sqm.tree.domain.AbstractSqmPath
copyTo, get, get, get, get, getExpressible, getModel, getNavigablePath, getNavigablePathCopy, getNodeType, getReferencedPathSource, getResolvedModel, getReusablePath, getReusablePaths, getTreatedPath, registerReusablePath, resolvePath, resolvePath, toString, type, visitReusablePaths
-
Methods inherited from class org.hibernate.query.sqm.tree.expression.AbstractSqmExpression
applyInferableType, as, asBigDecimal, asBigInteger, asDouble, asFloat, asInteger, asLong, asString, equalTo, equalTo, getJavaTypeDescriptor, in, in, in, in, internalApplyInferableType, isNotNull, isNull, nodeBuilder
-
Methods inherited from class org.hibernate.query.sqm.tree.jpa.AbstractJpaSelection
getSelectionItems, isCompoundSelection
-
Methods inherited from class org.hibernate.query.sqm.tree.jpa.AbstractJpaTupleElement
copyTo, getAlias, setAlias, setExpressibleType
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface jakarta.persistence.criteria.From
getJoins, isCorrelated
-
Methods inherited from interface org.hibernate.query.criteria.JpaFetchParent
fetch, fetch, fetch, fetch, fetch, fetch, getFetches
-
Methods inherited from interface org.hibernate.query.criteria.JpaFrom
crossJoin, crossJoin, join, join, join, join, join, join, join, join, join, joinLateral, joinLateral
-
Methods inherited from interface org.hibernate.query.criteria.JpaJoinedFrom
getOn
-
Methods inherited from interface org.hibernate.query.criteria.JpaPath
getParentPath
-
Methods inherited from interface org.hibernate.query.criteria.JpaSelection
alias, getCompoundSelectionItems, getSelectionItems
-
Methods inherited from interface org.hibernate.query.criteria.JpaTupleElement
getJavaType, getJavaTypeName, isEnum
-
Methods inherited from interface jakarta.persistence.criteria.Selection
isCompoundSelection
-
Methods inherited from interface org.hibernate.query.sqm.tree.expression.SqmExpression
as, asBigDecimal, asBigInteger, asDouble, asFloat, asInteger, asLong, asString, cast, castAs, equalTo, equalTo, in, in, in, in, isNotNull, isNull, visitSubSelectableNodes
-
Methods inherited from interface org.hibernate.query.sqm.tree.from.SqmFrom
addSqmJoin, getCorrelationParent, getReferencedPathSource, getSqmJoins, getSqmTreats, hasJoins, hasTreats, join, join, join, join, join, join, join, join, join, join, joinCollection, joinCollection, joinList, joinList, joinMap, joinMap, joinSet, joinSet, visitSqmJoins
-
Methods inherited from interface org.hibernate.query.sqm.tree.from.SqmJoin
getSqmJoinType, join, join
-
Methods inherited from interface org.hibernate.query.sqm.tree.SqmNode
asLoggableText, nodeBuilder
-
Methods inherited from interface org.hibernate.query.sqm.tree.domain.SqmPath
applyInferableType, get, get, get, get, getExplicitAlias, getJavaTypeDescriptor, getNavigablePath, getNodeType, getResolvedModel, getReusablePath, getReusablePaths, registerReusablePath, resolveAlias, resolveIndexedAccess, resolvePathPart, setExplicitAlias, type, visitReusablePaths
-
Methods inherited from interface org.hibernate.query.sqm.tree.select.SqmSelectableNode
getTupleLength
-
Methods inherited from interface org.hibernate.query.sqm.tree.SqmTypedNode
getExpressible, getNodeJavaType
-
Methods inherited from interface org.hibernate.query.sqm.tree.SqmVisitableNode
appendHqlString, toHqlString
-
Methods inherited from interface jakarta.persistence.TupleElement
getAlias
-
-
-
-
Constructor Detail
-
SqmDerivedJoin
public SqmDerivedJoin(SqmSubQuery<T> subQuery, String alias, SqmJoinType joinType, boolean lateral, SqmRoot<?> sqmRoot)
-
SqmDerivedJoin
protected SqmDerivedJoin(NavigablePath navigablePath, SqmSubQuery<T> subQuery, boolean lateral, SqmPathSource<T> pathSource, String alias, SqmJoinType joinType, SqmRoot<?> sqmRoot)
-
-
Method Detail
-
isImplicitlySelectable
public boolean isImplicitlySelectable()
Description copied from interface:SqmJoinWhen applicable, whether this join should be included in an implicit select clause- Specified by:
isImplicitlySelectablein interfaceSqmJoin<T,T>
-
copy
public SqmDerivedJoin<T> copy(SqmCopyContext context)
- Specified by:
copyin interfaceSqmExpression<T>- Specified by:
copyin interfaceSqmFrom<T,T>- Specified by:
copyin interfaceSqmJoin<T,T>- Specified by:
copyin interfaceSqmNode- Specified by:
copyin interfaceSqmPath<T>- Specified by:
copyin interfaceSqmSelectableNode<T>- Specified by:
copyin interfaceSqmTypedNode<T>
-
getRoot
public SqmRoot<?> getRoot()
-
getQueryPart
public SqmSubQuery<T> getQueryPart()
Description copied from interface:JpaDerivedFromThe subquery part for this derived from node.- Specified by:
getQueryPartin interfaceJpaDerivedFrom<T>
-
isLateral
public boolean isLateral()
Description copied from interface:JpaDerivedJoinSpecifies whether the subquery part can access previous from node aliases. Normally, subqueries in the from clause are unable to access other from nodes, but when specifying them as lateral, they are allowed to do so. Refer to the SQL standard definition of LATERAL for more details.- Specified by:
isLateralin interfaceJpaDerivedJoin<T>
-
getLhs
public SqmPath<?> getLhs()
Description copied from interface:SqmPathGet the left-hand side of this path - may be null, indicating a root, cross-join or entity-join
-
on
public SqmDerivedJoin<T> on(JpaExpression<Boolean> restriction)
- Specified by:
onin interfaceJpaDerivedJoin<T>- Specified by:
onin interfaceJpaJoinedFrom<T,T>- Overrides:
onin classAbstractSqmQualifiedJoin<T,T>
-
on
public SqmDerivedJoin<T> on(Expression<Boolean> restriction)
- Specified by:
onin interfaceJpaDerivedJoin<T>- Specified by:
onin interfaceJpaJoinedFrom<T,T>- Overrides:
onin classAbstractSqmQualifiedJoin<T,T>
-
on
public SqmDerivedJoin<T> on(JpaPredicate... restrictions)
- Specified by:
onin interfaceJpaDerivedJoin<T>- Specified by:
onin interfaceJpaJoinedFrom<T,T>- Overrides:
onin classAbstractSqmQualifiedJoin<T,T>
-
on
public SqmDerivedJoin<T> on(Predicate... restrictions)
- Specified by:
onin interfaceJpaDerivedJoin<T>- Specified by:
onin interfaceJpaJoinedFrom<T,T>- Overrides:
onin classAbstractSqmQualifiedJoin<T,T>
-
accept
public <X> X accept(SemanticQueryWalker<X> walker)
Description copied from interface:SqmVisitableNodeAccept the walker per visitation- Specified by:
acceptin interfaceSqmVisitableNode
-
createCorrelation
public SqmCorrelatedDerivedJoin<T> createCorrelation()
- Specified by:
createCorrelationin classAbstractSqmFrom<T,T>
-
treatAs
public <S extends T> SqmFrom<?,S> treatAs(Class<S> treatJavaType) throws PathException
Description copied from interface:JpaPathSupport for JPA's explicit (TREAT) down-casting.
-
treatAs
public <S extends T> SqmFrom<?,S> treatAs(EntityDomainType<S> treatTarget) throws PathException
Description copied from interface:JpaPathSupport for JPA's explicit (TREAT) down-casting.
-
-