Class SqmCrossJoin<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<T,T>
org.hibernate.query.sqm.tree.from.SqmCrossJoin<T>
- All Implemented Interfaces:
Expression<T>
,FetchParent<T,
,T> From<T,
,T> Join<T,
,T> Path<T>
,Selection<T>
,TupleElement<T>
,Serializable
,JpaCriteriaNode
,JpaCrossJoin<T>
,JpaExpression<T>
,JpaFetchParent<T,
,T> JpaFrom<T,
,T> JpaJoin<T,
,T> JpaPath<T>
,JpaSelection<T>
,JpaTupleElement<T>
,SemanticPathPart
,SqmPath<T>
,SqmExpression<T>
,SqmFrom<T,
,T> SqmJoin<T,
,T> SqmSelectableNode<T>
,SqmExpressibleAccessor<T>
,SqmNode
,SqmTypedNode<T>
,SqmVisitableNode
- Direct Known Subclasses:
SqmCorrelatedCrossJoin
,SqmTreatedCrossJoin
Stuff and things
- See Also:
- API Note:
- SqmCrossJoin and its offspring are largely de-typed to account for SqmCrossJoin having only one type argument for the right-hand side. To properly handle the type parameters in the hierarchy we would need to change this to accept type parameter for the left-handle side as well. Another option is to not make it a join as in `SqmJoin`. Instead, model it as a root with its predicate(s) added to an internal `SqmPredicateCollection` (ansi join predicate) or to the query where clause (theta joins).
- Implementation Note:
- IMPL NOTE
-
Field Summary
-
Constructor Summary
ConstructorsModifierConstructorDescriptionSqmCrossJoin
(EntityDomainType<T> joinedEntityDescriptor, String alias, SqmRoot<?> sqmRoot) protected
SqmCrossJoin
(NavigablePath navigablePath, EntityDomainType<T> joinedEntityDescriptor, String alias, SqmRoot<?> sqmRoot) -
Method Summary
Modifier and TypeMethodDescription<X> X
accept
(SemanticQueryWalker<X> walker) Accept the walker per visitationcopy
(SqmCopyContext context) SqmRoot<?>
findRoot()
PersistentAttribute<? super T,
?> Obtain the join predicategetLhs()
Get the left-hand side of this path - may be null, indicating a root, cross-join or entity-joinThe path source that this path refers to (and that most likely created it).SqmRoot<?>
getRoot()
The type of join - inner, cross, etcboolean
When applicable, whether this join should be included in an implicit select clausemakeCopy
(SqmCreationProcessingState creationProcessingState) void
setJoinPredicate
(SqmPredicate predicate) Inject the join predicate<S extends T>
SqmTreatedCrossJoinSupport for JPA's explicit (TREAT) down-casting.<S extends T>
SqmTreatedCrossJoin<S extends T>
SqmTreatedFrom<T,T, S> <S extends T>
SqmTreatedCrossJointreatAs
(EntityDomainType<S> treatAsType) Support for JPA's explicit (TREAT) down-casting.<S extends T>
SqmTreatedCrossJointreatAs
(EntityDomainType<S> treatTarget, String alias) <S extends T>
SqmTreatedFrom<T,T, S> treatAs
(EntityDomainType<S> treatTarget, String alias, boolean fetch) 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, hasImplicitlySelectableJoin, 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, join, join, join, join, join, join, joinArray, joinArray, joinArray, joinArray, joinArrayCollection, joinArrayCollection, joinArrayCollection, joinArrayCollection, joinCollection, joinCollection, joinLateral, joinLateral, 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, get, getExpressible, getModel, getNavigablePath, getNavigablePathCopy, getNodeType, 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, cast, equalTo, equalTo, getJavaTypeDescriptor, in, in, in, in, internalApplyInferableType, isNotNull, isNull, nodeBuilder, notEqualTo, notEqualTo
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
join, join, join, join, join, join, join, join, joinArray, joinArray, joinArray, joinArray, joinArrayCollection, joinArrayCollection, joinArrayCollection, joinArrayCollection, joinLateral, 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, 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, notEqualTo, notEqualTo, visitSubSelectableNodes
Methods inherited from interface org.hibernate.query.sqm.tree.from.SqmFrom
addSqmJoin, getCorrelationParent, getSqmJoins, getSqmTreats, hasImplicitlySelectableJoin, hasJoins, hasTreats, join, join, visitSqmJoins
Methods inherited from interface org.hibernate.query.sqm.tree.from.SqmJoin
crossJoin, crossJoin, getOn, 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, on, on, on, on
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, 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 Details
-
SqmCrossJoin
-
-
Method Details
-
isImplicitlySelectable
public boolean isImplicitlySelectable()Description copied from interface:SqmJoin
When applicable, whether this join should be included in an implicit select clause- Specified by:
isImplicitlySelectable
in interfaceSqmJoin<T,
T>
-
getJoinType
- Specified by:
getJoinType
in interfaceJoin<T,
T>
-
getSqmJoinType
Description copied from interface:SqmJoin
The type of join - inner, cross, etc- Specified by:
getSqmJoinType
in interfaceSqmJoin<T,
T>
-
copy
- 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>
-
getRoot
-
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 -
getReferencedPathSource
Description copied from interface:SqmPath
The path source that this path refers to (and that most likely created it).- Specified by:
getReferencedPathSource
in interfaceSqmFrom<T,
T> - Specified by:
getReferencedPathSource
in interfaceSqmPath<T>
- Overrides:
getReferencedPathSource
in classAbstractSqmPath<T>
- See Also:
-
getEntityName
-
accept
Description copied from interface:SqmVisitableNode
Accept the walker per visitation- Specified by:
accept
in interfaceSqmVisitableNode
-
findRoot
-
createCorrelation
- Specified by:
createCorrelation
in classAbstractSqmFrom<T,
T>
-
makeCopy
-
getAttribute
- Specified by:
getAttribute
in interfaceJoin<T,
T> - Specified by:
getAttribute
in interfaceJpaJoin<T,
T>
-
getJoinPredicate
Description copied from interface:SqmJoin
Obtain the join predicate- Specified by:
getJoinPredicate
in interfaceSqmJoin<T,
T> - Returns:
- The join predicate
-
setJoinPredicate
Description copied from interface:SqmJoin
Inject the join predicate- Specified by:
setJoinPredicate
in interfaceSqmJoin<T,
T> - Parameters:
predicate
- The join predicate
-
getParent
-
treatAs
-
treatAs
-
treatAs
-
treatAs
public <S extends T> SqmTreatedFrom<T,T, treatAsS> (EntityDomainType<S> treatTarget, String alias, boolean fetch) -
treatAs
Description copied from interface:JpaPath
Support for JPA's explicit (TREAT) down-casting.- Specified by:
treatAs
in interfaceJpaFrom<T,
T> - Specified by:
treatAs
in interfaceJpaJoin<T,
T> - Specified by:
treatAs
in interfaceJpaPath<T>
- Specified by:
treatAs
in interfaceSqmFrom<T,
T> - Specified by:
treatAs
in interfaceSqmJoin<T,
T> - Specified by:
treatAs
in interfaceSqmPath<T>
- Overrides:
treatAs
in classAbstractSqmFrom<T,
T>
-
treatAs
Description copied from interface:JpaPath
Support for JPA's explicit (TREAT) down-casting.- Specified by:
treatAs
in interfaceJpaFrom<T,
T> - Specified by:
treatAs
in interfaceJpaJoin<T,
T> - Specified by:
treatAs
in interfaceJpaPath<T>
- Specified by:
treatAs
in interfaceSqmFrom<T,
T> - Specified by:
treatAs
in interfaceSqmJoin<T,
T> - Specified by:
treatAs
in interfaceSqmPath<T>
- Overrides:
treatAs
in classAbstractSqmFrom<T,
T>
-