Class AbstractSqmPath<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>
- All Implemented Interfaces:
Expression<T>, Path<T>, Selection<T>, TupleElement<T>, Serializable, JpaCriteriaNode, JpaExpression<T>, JpaPath<T>, JpaSelection<T>, JpaTupleElement<T>, SemanticPathPart, SqmPath<T>, SqmExpression<T>, SqmSelectableNode<T>, SqmCacheable, SqmExpressibleAccessor<T>, SqmNode, SqmTypedNode<T>, SqmVisitableNode
- Direct Known Subclasses:
AbstractSqmFrom, AbstractSqmSimplePath, AbstractSqmSpecificPluralPartPath, SqmFkExpression, SqmFunctionPath, SqmIndexedCollectionAccessPath
- See Also:
-
Field Summary
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAbstractSqmPath(NavigablePath navigablePath, SqmPathSource<T> referencedPathSource, @Nullable SqmPath<?> lhs, NodeBuilder nodeBuilder) -
Method Summary
Modifier and TypeMethodDescriptionintprotected voidcopyTo(AbstractSqmPath<T> target, SqmCopyContext context) boolean<K, V, M extends Map<K,V>>
SqmExpression<M> get(MapAttribute<? super T, K, V> attribute) <E, C extends Collection<E>>
SqmExpression<C> get(PluralAttribute<? super T, C, E> attribute) <Y> SqmPath<Y> get(SingularAttribute<? super T, Y> jpaAttribute) <Y> SqmPath<Y> <Y> SqmPath<Y> Same asSqmPath.get(String), but ifincludeSubtypesis set totrueand this path is polymorphic, also try finding subtype attributes.@Nullable StringRetrieve the explicit alias, if one.@NonNull SqmBindableType<T> @Nullable SqmPath<?> getLhs()Get the left-hand side of this path - may be null, indicating a root, cross-join or entity-joingetModel()Returns the NavigablePath.protected NavigablePathgetNavigablePathCopy(SqmPath<?> parent) Utility that checks if this path's parent navigable path is compatible with the specified SQM parent, and if not creates a copy of the navigable path with the correct parent.The Java type descriptor for this node.@NonNull SqmBindableType<T> The expression's type.The path source that this path refers to (and that most likely created it).Get this path's actual resolved model, i.e.@Nullable SqmPath<?> getReusablePath(String name) Returns an immutable List of reusable pathsprotected <S extends T>
SqmTreatedPath<T, S> getTreatedPath(ManagedDomainType<S> treatTarget) inthashCode()booleanisCompatible(Object object) voidregisterReusablePath(SqmPath<?> path) Register a reusable path relative to this pathprotected <X> SqmPath<X> resolvePath(String attributeName, SqmPathSource<X> pathSource) protected <X> SqmPath<X> resolvePath(PersistentAttribute<?, X> attribute) voidsetExplicitAlias(@Nullable String explicitAlias) Set the explicit alias for this pathtoString()<S extends T>
SqmTreatedPath<T, S> Support for JPA's explicit (TREAT) down-casting.<S extends T>
SqmTreatedPath<T, S> <S extends T>
SqmTreatedPath<T, S> <S extends T>
SqmTreatedPath<T, S> treatAs(EntityDomainType<S> treatTarget) Support for JPA's explicit (TREAT) down-casting.<S extends T>
SqmTreatedPath<T, S> treatAs(EntityDomainType<S> treatTarget, @Nullable String alias) <S extends T>
SqmTreatedPath<T, S> treatAs(EntityDomainType<S> treatTarget, @Nullable String alias, boolean fetch) SqmExpression<Class<? extends T>> type()voidvisitReusablePaths(Consumer<SqmPath<?>> consumer) Visit each reusable path relative to this pathMethods inherited from class AbstractSqmExpression
applyInferableType, as, cast, equalTo, equalTo, in, in, in, in, internalApplyInferableType, isNotNull, isNull, nodeBuilder, notEqualTo, notEqualToMethods inherited from class AbstractJpaSelection
alias, getSelectionItems, isCompoundSelectionMethods inherited from class AbstractJpaTupleElement
copyTo, getAlias, setAlias, setExpressibleTypeMethods inherited from interface JpaPath
getParentPathMethods inherited from interface JpaSelection
alias, getCompoundSelectionItems, getSelectionItemsMethods inherited from interface JpaTupleElement
getJavaType, getJavaTypeName, isEnumMethods inherited from interface Selection
isCompoundSelectionMethods inherited from interface 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 SqmNode
asLoggableText, nodeBuilderMethods inherited from interface SqmPath
applyInferableType, copy, findRoot, resolveIndexedAccess, resolvePathPartMethods inherited from interface SqmSelectableNode
getTupleLengthMethods inherited from interface SqmVisitableNode
accept, appendHqlString, toHqlStringMethods inherited from interface TupleElement
getAlias
-
Constructor Details
-
Method Details
-
copyTo
-
getNodeType
Description copied from interface:SqmExpressionThe expression's type.Can change as a result of calls to
SqmExpression.applyInferableType(SqmBindableType)- Specified by:
getNodeTypein interfaceSqmExpression<T>- Specified by:
getNodeTypein interfaceSqmPath<T>- Specified by:
getNodeTypein interfaceSqmTypedNode<T>- Overrides:
getNodeTypein classAbstractJpaTupleElement<T>
-
getReferencedPathSource
Description copied from interface:SqmPathThe path source that this path refers to (and that most likely created it).- Specified by:
getReferencedPathSourcein interfaceSqmPath<T>- See Also:
-
getLhs
-
getReusablePaths
-
visitReusablePaths
-
registerReusablePath
Description copied from interface:SqmPathRegister a reusable path relative to this path- Specified by:
registerReusablePathin interfaceSqmPath<T>
-
getReusablePath
- Specified by:
getReusablePathin interfaceSqmPath<T>
-
getExplicitAlias
Description copied from interface:SqmPathRetrieve the explicit alias, if one. May return null- Specified by:
getExplicitAliasin interfaceSqmPath<T>
-
setExplicitAlias
Description copied from interface:SqmPathSet the explicit alias for this path- Specified by:
setExplicitAliasin interfaceSqmPath<T>
-
getModel
-
getResolvedModel
Description copied from interface:SqmPathGet this path's actual resolved model, i.e. the concrete type for generic attributes.- Specified by:
getResolvedModelin interfaceSqmPath<T>
-
getExpressible
- Specified by:
getExpressiblein interfaceSqmExpressibleAccessor<T>- Specified by:
getExpressiblein interfaceSqmTypedNode<T>
-
getJavaTypeDescriptor
- Specified by:
getJavaTypeDescriptorin interfaceJpaTupleElement<T>- Specified by:
getJavaTypeDescriptorin interfaceSqmPath<T>- Overrides:
getJavaTypeDescriptorin classAbstractSqmExpression<T>
-
getNodeJavaType
Description copied from interface:SqmTypedNodeThe Java type descriptor for this node.- Specified by:
getNodeJavaTypein interfaceSqmExpressibleAccessor<T>- Specified by:
getNodeJavaTypein interfaceSqmTypedNode<T>
-
type
-
get
-
get
Description copied from interface:SqmPathSame asSqmPath.get(String), but ifincludeSubtypesis set totrueand this path is polymorphic, also try finding subtype attributes. -
resolvePath
-
resolvePath
-
getTreatedPath
-
treatAs
-
treatAs
-
treatAs
-
treatAs
public <S extends T> SqmTreatedPath<T,S> treatAs(EntityDomainType<S> treatTarget, @Nullable String alias) -
treatAs
-
treatAs
public <S extends T> SqmTreatedPath<T,S> treatAs(EntityDomainType<S> treatTarget, @Nullable String alias, boolean fetch) -
get
-
get
public <E, C extends Collection<E>> SqmExpression<C> get(PluralAttribute<? super T, C, E> attribute) -
get
-
equals
-
hashCode
-
isCompatible
- Specified by:
isCompatiblein interfaceSqmCacheable
-
cacheHashCode
public int cacheHashCode()- Specified by:
cacheHashCodein interfaceSqmCacheable
-
toString
-