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<T,T>
-
- org.hibernate.query.sqm.tree.from.SqmDerivedJoin<T>
-
- All Implemented Interfaces:
jakarta.persistence.criteria.Expression<T>
,jakarta.persistence.criteria.FetchParent<T,T>
,jakarta.persistence.criteria.From<T,T>
,jakarta.persistence.criteria.Path<T>
,jakarta.persistence.criteria.Selection<T>
,jakarta.persistence.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
public class SqmDerivedJoin<T> extends AbstractSqmJoin<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)
protected
SqmDerivedJoin(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> X
accept(SemanticQueryWalker<X> walker)
Accept the walker per visitationSqmDerivedJoin<T>
copy(SqmCopyContext context)
protected void
copyTo(SqmDerivedJoin<T> target, SqmCopyContext context)
SqmCorrelatedEntityJoin<T>
createCorrelation()
SqmRoot<?>
findRoot()
SqmPredicate
getJoinPredicate()
Obtain the join predicateSqmPath<?>
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()
boolean
isLateral()
Specifies whether the subquery part can access previous from node aliases.void
setJoinPredicate(SqmPredicate predicate)
Inject the join predicate<S extends T>
SqmTreatedEntityJoin<T,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>
SqmTreatedEntityJoin<T,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.AbstractSqmJoin
getSqmJoinType
-
Methods inherited from class org.hibernate.query.sqm.tree.domain.AbstractSqmFrom
addSqmJoin, addTreat, alias, appendHqlString, copyTo, fetch, fetch, fetch, fetch, fetch, fetch, findTreat, getCorrelationParent, getExplicitAlias, getFetches, getJoins, getParentPath, getSqmJoins, getSqmTreats, hasJoins, hasTreats, isCorrelated, 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, resolvePathPart, setExplicitAlias, visitSqmJoins
-
Methods inherited from class org.hibernate.query.sqm.tree.domain.AbstractSqmPath
copyTo, get, get, get, get, getModel, getNavigablePath, getNodeType, getReferencedPathSource, 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, 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 org.hibernate.query.criteria.JpaFetchParent
fetch, fetch, fetch, fetch, fetch, fetch, getFetches
-
Methods inherited from interface org.hibernate.query.criteria.JpaFrom
join, join, join, join, join, join, join, joinLateral, joinLateral
-
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
-
Methods inherited from interface org.hibernate.query.sqm.tree.expression.SqmExpression
as, asBigDecimal, asBigInteger, asDouble, asFloat, asInteger, asLong, asString, castAs, 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, getReusablePath, getReusablePaths, registerReusablePath, resolveAlias, resolveIndexedAccess, resolvePathPart, setExplicitAlias, type, visitReusablePaths
-
Methods inherited from interface org.hibernate.query.sqm.tree.SqmTypedNode
getExpressible, getNodeJavaType
-
Methods inherited from interface org.hibernate.query.sqm.tree.SqmVisitableNode
appendHqlString, toHqlString
-
-
-
-
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
-
copy
public SqmDerivedJoin<T> copy(SqmCopyContext context)
- Specified by:
copy
in interfaceSqmExpression<T>
- Specified by:
copy
in interfaceSqmFrom<T,T>
- Specified by:
copy
in interfaceSqmJoin<T,T>
- Specified by:
copy
in interfaceSqmNode
- Specified by:
copy
in interfaceSqmPath<T>
- Specified by:
copy
in interfaceSqmSelectableNode<T>
- Specified by:
copy
in interfaceSqmTypedNode<T>
-
copyTo
protected void copyTo(SqmDerivedJoin<T> target, SqmCopyContext context)
-
getRoot
public SqmRoot<?> getRoot()
-
getQueryPart
public SqmSubQuery<T> getQueryPart()
Description copied from interface:JpaDerivedFrom
The subquery part for this derived from node.- Specified by:
getQueryPart
in interfaceJpaDerivedFrom<T>
-
isLateral
public boolean isLateral()
Description copied from interface:JpaDerivedJoin
Specifies 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:
isLateral
in interfaceJpaDerivedJoin<T>
-
getLhs
public SqmPath<?> getLhs()
Description copied from interface:SqmPath
Get the left-hand side of this path - may be null, indicating a root, cross-join or entity-join
-
getJoinPredicate
public SqmPredicate getJoinPredicate()
Description copied from interface:SqmQualifiedJoin
Obtain the join predicate- Specified by:
getJoinPredicate
in interfaceSqmQualifiedJoin<T,T>
- Returns:
- The join predicate
-
setJoinPredicate
public void setJoinPredicate(SqmPredicate predicate)
Description copied from interface:SqmQualifiedJoin
Inject the join predicate- Specified by:
setJoinPredicate
in interfaceSqmQualifiedJoin<T,T>
- Parameters:
predicate
- The join predicate
-
accept
public <X> X accept(SemanticQueryWalker<X> walker)
Description copied from interface:SqmVisitableNode
Accept the walker per visitation- Specified by:
accept
in interfaceSqmVisitableNode
-
createCorrelation
public SqmCorrelatedEntityJoin<T> createCorrelation()
- Specified by:
createCorrelation
in classAbstractSqmFrom<T,T>
-
treatAs
public <S extends T> SqmTreatedEntityJoin<T,S> treatAs(Class<S> treatJavaType) throws PathException
Description copied from interface:JpaPath
Support for JPA's explicit (TREAT) down-casting.
-
treatAs
public <S extends T> SqmTreatedEntityJoin<T,S> treatAs(EntityDomainType<S> treatTarget) throws PathException
Description copied from interface:JpaPath
Support for JPA's explicit (TREAT) down-casting.
-
-