Class AbstractSqmParameter<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.expression.AbstractSqmParameter<T>
- All Implemented Interfaces:
Expression<T>
,ParameterExpression<T>
,Selection<T>
,Parameter<T>
,TupleElement<T>
,Serializable
,Comparable<SqmParameter<T>>
,JpaCriteriaNode
,JpaExpression<T>
,JpaParameterExpression<T>
,JpaSelection<T>
,JpaTupleElement<T>
,SqmExpression<T>
,SqmParameter<T>
,SqmSelectableNode<T>
,SqmExpressibleAccessor<T>
,SqmNode
,SqmTypedNode<T>
,SqmVisitableNode
- Direct Known Subclasses:
SqmNamedParameter
,SqmPositionalParameter
public abstract class AbstractSqmParameter<T>
extends AbstractSqmExpression<T>
implements SqmParameter<T>
Common support for SqmParameter impls
- See Also:
-
Field Summary
-
Constructor Summary
ConstructorsConstructorDescriptionAbstractSqmParameter
(boolean canBeMultiValued, SqmExpressible<T> inherentType, NodeBuilder nodeBuilder) -
Method Summary
Modifier and TypeMethodDescriptionboolean
Can a collection/array of values be bound to this parameter?void
applyInferableType
(@Nullable SqmExpressible<?> type) Used to apply type information based on the expression's usage within the query.void
Based on the context it is declared, what is the anticipated type for bind values?getName()
If this represents a named parameter, return that parameter name; otherwise returnnull
.If this represents a positional parameter, return that parameter position; otherwise returnnull
.Methods inherited from class org.hibernate.query.sqm.tree.expression.AbstractSqmExpression
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
alias, getSelectionItems, isCompoundSelection
Methods inherited from class org.hibernate.query.sqm.tree.jpa.AbstractJpaTupleElement
copyTo, getAlias, getNodeType, setAlias, setExpressibleType
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.hibernate.query.criteria.JpaSelection
alias, getCompoundSelectionItems, getSelectionItems
Methods inherited from interface org.hibernate.query.criteria.JpaTupleElement
getJavaType, getJavaTypeDescriptor, 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, getNodeType, in, in, in, in, isNotNull, isNull, notEqualTo, notEqualTo, visitSubSelectableNodes
Methods inherited from interface org.hibernate.query.sqm.tree.SqmNode
asLoggableText, nodeBuilder
Methods inherited from interface org.hibernate.query.sqm.tree.expression.SqmParameter
compareTo, copy, copy
Methods inherited from interface org.hibernate.query.sqm.tree.SqmTypedNode
getExpressible, getNodeJavaType
Methods inherited from interface org.hibernate.query.sqm.tree.SqmVisitableNode
accept, appendHqlString, toHqlString
Methods inherited from interface jakarta.persistence.TupleElement
getAlias
-
Constructor Details
-
AbstractSqmParameter
public AbstractSqmParameter(boolean canBeMultiValued, SqmExpressible<T> inherentType, NodeBuilder nodeBuilder)
-
-
Method Details
-
applyInferableType
Description copied from interface:SqmExpression
Used to apply type information based on the expression's usage within the query.- Specified by:
applyInferableType
in interfaceSqmExpression<T>
- Overrides:
applyInferableType
in classAbstractSqmExpression<T>
-
getName
Description copied from interface:SqmParameter
If this represents a named parameter, return that parameter name; otherwise returnnull
. -
getPosition
Description copied from interface:SqmParameter
If this represents a positional parameter, return that parameter position; otherwise returnnull
.- Specified by:
getPosition
in interfaceParameter<T>
- Specified by:
getPosition
in interfaceSqmParameter<T>
- Returns:
- The parameter position
-
allowMultiValuedBinding
public boolean allowMultiValuedBinding()Description copied from interface:SqmParameter
Can a collection/array of values be bound to this parameter?This is allowed in very limited contexts within the query:
- as the value of an IN predicate if the only value is a single param
- (in non-strict JPA mode) as the final vararg to a function
- Specified by:
allowMultiValuedBinding
in interfaceSqmParameter<T>
- Returns:
true
if binding collection/array of values is allowed for this parameter;false
otherwise.
-
disallowMultiValuedBinding
public void disallowMultiValuedBinding() -
getAnticipatedType
Description copied from interface:SqmParameter
Based on the context it is declared, what is the anticipated type for bind values?NOTE: If
SqmParameter.allowMultiValuedBinding()
is true, this will indicate the Type of the individual values.- Specified by:
getAnticipatedType
in interfaceSqmParameter<T>
- Returns:
- The anticipated Type.
-
getParameterType
- Specified by:
getParameterType
in interfaceParameter<T>
-
getTupleLength
- Specified by:
getTupleLength
in interfaceSqmSelectableNode<T>
-