Interface SqmParameter<T>
-
- All Superinterfaces:
Comparable<SqmParameter<T>>,Expression<T>,JpaCriteriaNode,JpaExpression<T>,JpaParameterExpression<T>,JpaSelection<T>,JpaTupleElement<T>,Parameter<T>,ParameterExpression<T>,Selection<T>,Serializable,SqmExpressibleAccessor<T>,SqmExpression<T>,SqmNode,SqmSelectableNode<T>,SqmTypedNode<T>,SqmVisitableNode,TupleElement<T>
- All Known Implementing Classes:
AbstractSqmParameter,JpaCriteriaParameter,SqmJpaCriteriaParameterWrapper,SqmNamedParameter,SqmPositionalParameter,ValueBindJpaCriteriaParameter
public interface SqmParameter<T> extends SqmExpression<T>, JpaParameterExpression<T>, Comparable<SqmParameter<T>>
Models a parameter expression declared in the query.- Implementation Note:
- Each usage of a given named/positional query parameter will result in a unique SqmParameter instance, each will simply use to the same binding. This is important to distinguish usage of the same parameter in different clauses which effects the rendering and value binding.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description booleanallowMultiValuedBinding()Can a collection/array of values be bound to this parameter?default intcompareTo(SqmParameter<T> anotherParameter)SqmParameter<T>copy()Make a copySqmParameter<T>copy(SqmCopyContext context)BindableType<T>getAnticipatedType()Based on the context it is declared, what is the anticipated type for bind values?StringgetName()If this represents a named parameter, return that parameter name; otherwise returnnull.SqmExpressible<T>getNodeType()The expression's type.IntegergetPosition()If this represents a positional parameter, return that parameter position; otherwise returnnull.-
Methods inherited from interface org.hibernate.query.criteria.JpaSelection
alias, getCompoundSelectionItems, getSelectionItems
-
Methods inherited from interface org.hibernate.query.criteria.JpaTupleElement
getJavaType, getJavaTypeDescriptor
-
Methods inherited from interface jakarta.persistence.Parameter
getParameterType
-
Methods inherited from interface jakarta.persistence.criteria.Selection
isCompoundSelection
-
Methods inherited from interface org.hibernate.query.sqm.tree.expression.SqmExpression
applyInferableType, 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.SqmNode
asLoggableText, nodeBuilder
-
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
-
-
-
-
Method Detail
-
getName
String getName()
If this represents a named parameter, return that parameter name; otherwise returnnull.
-
getPosition
Integer getPosition()
If this represents a positional parameter, return that parameter position; otherwise returnnull.- Specified by:
getPositionin interfaceParameter<T>- Returns:
- The parameter position
-
allowMultiValuedBinding
boolean allowMultiValuedBinding()
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
- Returns:
trueif binding collection/array of values is allowed for this parameter;falseotherwise.
-
getAnticipatedType
BindableType<T> getAnticipatedType()
Based on the context it is declared, what is the anticipated type for bind values?NOTE: If
allowMultiValuedBinding()is true, this will indicate the Type of the individual values.- Returns:
- The anticipated Type.
-
getNodeType
SqmExpressible<T> getNodeType()
Description copied from interface:SqmExpressionThe expression's type. Can change as a result of calls toSqmExpression.applyInferableType(org.hibernate.query.sqm.SqmExpressible<?>)- Specified by:
getNodeTypein interfaceSqmExpression<T>- Specified by:
getNodeTypein interfaceSqmTypedNode<T>
-
copy
SqmParameter<T> copy()
Make a copy
-
copy
SqmParameter<T> copy(SqmCopyContext context)
- Specified by:
copyin interfaceSqmExpression<T>- Specified by:
copyin interfaceSqmNode- Specified by:
copyin interfaceSqmSelectableNode<T>- Specified by:
copyin interfaceSqmTypedNode<T>
-
compareTo
default int compareTo(SqmParameter<T> anotherParameter)
- Specified by:
compareToin interfaceComparable<T>- Implementation Specification:
- Defined as default since this is an SPI to support any previous extensions
-
-