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(SqmEntityDomainType<T> joinedEntityDescriptor, String alias, SqmRoot<?> sqmRoot) protectedSqmCrossJoin(NavigablePath navigablePath, SqmEntityDomainType<T> joinedEntityDescriptor, String alias, SqmRoot<?> sqmRoot) -
Method Summary
Modifier and TypeMethodDescription<X> Xaccept(SemanticQueryWalker<X> walker) Accept the walker per visitationcopy(SqmCopyContext context) booleanSqmRoot<?> 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, etcinthashCode()booleanWhen applicable, whether this join should be included in an implicit select clausemakeCopy(SqmCreationProcessingState creationProcessingState) voidsetJoinPredicate(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, getNumberOfJoins, getParentPath, getSqmJoins, getSqmTreats, hasImplicitlySelectableJoin, hasJoins, id, 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, visitSqmJoinsMethods 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, visitReusablePathsMethods 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, notEqualToMethods inherited from class org.hibernate.query.sqm.tree.jpa.AbstractJpaSelection
getSelectionItems, isCompoundSelectionMethods inherited from class org.hibernate.query.sqm.tree.jpa.AbstractJpaTupleElement
copyTo, getAlias, setAlias, setExpressibleTypeMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface jakarta.persistence.criteria.From
getJoins, isCorrelatedMethods inherited from interface org.hibernate.query.criteria.JpaFetchParent
fetch, fetch, fetch, fetch, fetch, fetch, getFetchesMethods inherited from interface org.hibernate.query.criteria.JpaFrom
id, join, join, join, join, join, join, join, join, joinArray, joinArray, joinArray, joinArray, joinArrayCollection, joinArrayCollection, joinArrayCollection, joinArrayCollection, joinLateral, joinLateral, joinLateralMethods inherited from interface org.hibernate.query.criteria.JpaPath
getParentPathMethods inherited from interface org.hibernate.query.criteria.JpaSelection
alias, getCompoundSelectionItems, getSelectionItemsMethods inherited from interface org.hibernate.query.criteria.JpaTupleElement
getJavaType, getJavaTypeName, isEnumMethods inherited from interface jakarta.persistence.criteria.Selection
isCompoundSelectionMethods 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, visitSubSelectableNodesMethods inherited from interface org.hibernate.query.sqm.tree.from.SqmFrom
addSqmJoin, getCorrelationParent, getNumberOfJoins, getSqmJoins, getSqmTreats, hasImplicitlySelectableJoin, hasJoins, hasTreats, join, join, resolveAlias, visitSqmJoinsMethods 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, onMethods inherited from interface org.hibernate.query.sqm.tree.SqmNode
asLoggableText, nodeBuilderMethods inherited from interface org.hibernate.query.sqm.tree.domain.SqmPath
applyInferableType, get, get, get, get, get, getExplicitAlias, getJavaTypeDescriptor, getNavigablePath, getNodeType, getResolvedModel, getReusablePath, getReusablePaths, registerReusablePath, resolveIndexedAccess, resolvePathPart, setExplicitAlias, type, visitReusablePathsMethods inherited from interface org.hibernate.query.sqm.tree.select.SqmSelectableNode
getTupleLengthMethods inherited from interface org.hibernate.query.sqm.tree.SqmTypedNode
getExpressible, getNodeJavaTypeMethods inherited from interface org.hibernate.query.sqm.tree.SqmVisitableNode
appendHqlString, toHqlStringMethods inherited from interface jakarta.persistence.TupleElement
getAlias
-
Constructor Details
-
SqmCrossJoin
public SqmCrossJoin(SqmEntityDomainType<T> joinedEntityDescriptor, String alias, SqmRoot<?> sqmRoot)
-
-
Method Details
-
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>
-
getJoinType
- Specified by:
getJoinTypein interfaceJoin<T,T>
-
getSqmJoinType
Description copied from interface:SqmJoinThe type of join - inner, cross, etc- Specified by:
getSqmJoinTypein interfaceSqmJoin<T,T>
-
copy
- 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
-
getLhs
Description copied from interface:SqmPathGet the left-hand side of this path - may be null, indicating a root, cross-join or entity-join -
getReferencedPathSource
Description copied from interface:SqmPathThe path source that this path refers to (and that most likely created it).- Specified by:
getReferencedPathSourcein interfaceSqmFrom<T,T> - Specified by:
getReferencedPathSourcein interfaceSqmPath<T>- Overrides:
getReferencedPathSourcein classAbstractSqmPath<T>- Returns:
- See Also:
-
getEntityName
-
accept
Description copied from interface:SqmVisitableNodeAccept the walker per visitation- Specified by:
acceptin interfaceSqmVisitableNode
-
findRoot
-
createCorrelation
- Specified by:
createCorrelationin classAbstractSqmFrom<T,T>
-
makeCopy
-
getAttribute
- Specified by:
getAttributein interfaceJoin<T,T> - Specified by:
getAttributein interfaceJpaJoin<T,T>
-
getJoinPredicate
Description copied from interface:SqmJoinObtain the join predicate- Specified by:
getJoinPredicatein interfaceSqmJoin<T,T> - Returns:
- The join predicate
-
setJoinPredicate
Description copied from interface:SqmJoinInject the join predicate- Specified by:
setJoinPredicatein 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:JpaPathSupport for JPA's explicit (TREAT) down-casting.- Specified by:
treatAsin interfaceJpaFrom<T,T> - Specified by:
treatAsin interfaceJpaJoin<T,T> - Specified by:
treatAsin interfaceJpaPath<T>- Specified by:
treatAsin interfaceSqmFrom<T,T> - Specified by:
treatAsin interfaceSqmJoin<T,T> - Specified by:
treatAsin interfaceSqmPath<T>- Overrides:
treatAsin classAbstractSqmFrom<T,T>
-
treatAs
Description copied from interface:JpaPathSupport for JPA's explicit (TREAT) down-casting.- Specified by:
treatAsin interfaceJpaFrom<T,T> - Specified by:
treatAsin interfaceJpaJoin<T,T> - Specified by:
treatAsin interfaceJpaPath<T>- Specified by:
treatAsin interfaceSqmFrom<T,T> - Specified by:
treatAsin interfaceSqmJoin<T,T> - Specified by:
treatAsin interfaceSqmPath<T>- Overrides:
treatAsin classAbstractSqmFrom<T,T>
-
equals
- Overrides:
equalsin classAbstractSqmPath<T>
-
hashCode
public int hashCode()- Overrides:
hashCodein classAbstractSqmPath<T>
-