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
- Author:
- Steve Ebersole
- See Also:
-
Field Summary
-
Constructor Summary
ConstructorsConstructorDescriptionAbstractSqmParameter(boolean canBeMultiValued, SqmExpressible<T> inherentType, NodeBuilder nodeBuilder) -
Method Summary
Modifier and TypeMethodDescriptionbooleanCan a collection/array of values be bound to this parameter?voidapplyInferableType(@Nullable SqmExpressible<?> type) Used to apply type information based on the expression's usage within the query.voidBased 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.Return the Java type of the parameter.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, equalTo, equalTo, getJavaTypeDescriptor, in, in, in, in, internalApplyInferableType, isNotNull, isNull, nodeBuilderMethods inherited from class org.hibernate.query.sqm.tree.jpa.AbstractJpaSelection
alias, getSelectionItems, isCompoundSelectionMethods inherited from class org.hibernate.query.sqm.tree.jpa.AbstractJpaTupleElement
copyTo, getAlias, getNodeType, setAlias, setExpressibleTypeMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.hibernate.query.criteria.JpaSelection
alias, getCompoundSelectionItems, getSelectionItemsMethods inherited from interface org.hibernate.query.criteria.JpaTupleElement
getJavaType, getJavaTypeDescriptor, 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, getNodeType, in, in, in, in, isNotNull, isNull, visitSubSelectableNodesMethods inherited from interface org.hibernate.query.sqm.tree.SqmNode
asLoggableText, nodeBuilderMethods inherited from interface org.hibernate.query.sqm.tree.expression.SqmParameter
compareTo, copy, copyMethods inherited from interface org.hibernate.query.sqm.tree.SqmTypedNode
getExpressible, getNodeJavaTypeMethods inherited from interface org.hibernate.query.sqm.tree.SqmVisitableNode
accept, appendHqlString, toHqlStringMethods 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:SqmExpressionUsed to apply type information based on the expression's usage within the query.- Specified by:
applyInferableTypein interfaceSqmExpression<T>- Overrides:
applyInferableTypein classAbstractSqmExpression<T>
-
getName
Description copied from interface:SqmParameterIf this represents a named parameter, return that parameter name; otherwise returnnull. -
getPosition
Description copied from interface:SqmParameterIf this represents a positional parameter, return that parameter position; otherwise returnnull.- Specified by:
getPositionin interfaceParameter<T>- Specified by:
getPositionin interfaceSqmParameter<T>- Returns:
- The parameter position
-
allowMultiValuedBinding
public boolean allowMultiValuedBinding()Description copied from interface:SqmParameterCan 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:
allowMultiValuedBindingin interfaceSqmParameter<T>- Returns:
trueif binding collection/array of values is allowed for this parameter;falseotherwise.
-
disallowMultiValuedBinding
public void disallowMultiValuedBinding() -
getAnticipatedType
Description copied from interface:SqmParameterBased 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:
getAnticipatedTypein interfaceSqmParameter<T>- Returns:
- The anticipated Type.
-
getParameterType
Description copied from interface:ParameterReturn the Java type of the parameter. Values bound to the parameter must be assignable to this type. This method is required to be supported for criteria queries only. Applications that use this method for Jakarta Persistence query language queries and native queries will not be portable.- Specified by:
getParameterTypein interfaceParameter<T>- Returns:
- the Java type of the parameter
-
getTupleLength
- Specified by:
getTupleLengthin interfaceSqmSelectableNode<T>
-