Class JpaCriteriaParameter<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.JpaCriteriaParameter<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>,QueryParameter<T>,QueryParameterImplementor<T>,SqmExpression<T>,SqmParameter<T>,SqmSelectableNode<T>,SqmExpressibleAccessor<T>,SqmNode,SqmTypedNode<T>,SqmVisitableNode
- Direct Known Subclasses:
ValueBindJpaCriteriaParameter
public class JpaCriteriaParameter<T>
extends AbstractSqmExpression<T>
implements SqmParameter<T>, QueryParameterImplementor<T>
JpaParameterExpression created via JPA CriteriaBuilder.
Each occurrence of a JpaParameterExpression results in a unique SqmParameter.
- See Also:
-
Field Summary
-
Constructor Summary
ConstructorsModifierConstructorDescriptionJpaCriteriaParameter(String name, BindableType<? super T> type, boolean allowsMultiValuedBinding, NodeBuilder nodeBuilder) protectedJpaCriteriaParameter(JpaCriteriaParameter<T> original) -
Method Summary
Modifier and TypeMethodDescription<X> Xaccept(SemanticQueryWalker<X> walker) Accept the walker per visitationbooleanCan a collection/array of values be bound to this parameter?booleanDoes this parameter allow multi-valued (collection, array, etc) binding?voidappendHqlString(StringBuilder hql, SqmRenderContext context) voidintcompareTo(SqmParameter<T> parameter) copy()Make a copycopy(SqmCopyContext context) voidbooleanBased on the context it is declared, what is the anticipated type for bind values?Get the Hibernate Type associated with this parameter, if one.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.getValue()inthashCode()protected voidinternalApplyInferableType(SqmBindableType<?> newType) Methods 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, isNotNull, isNull, nodeBuilder, notEqualTo, notEqualToMethods 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, finalize, getClass, 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 org.hibernate.query.QueryParameter
isNamed, isOrdinalMethods inherited from interface jakarta.persistence.criteria.Selection
isCompoundSelectionMethods inherited from interface org.hibernate.query.sqm.tree.expression.SqmExpression
applyInferableType, as, asBigDecimal, asBigInteger, asDouble, asFloat, asInteger, asLong, asString, cast, castAs, equalTo, equalTo, getNodeType, in, in, in, in, isNotNull, isNull, notEqualTo, notEqualTo, visitSubSelectableNodesMethods inherited from interface org.hibernate.query.sqm.tree.SqmNode
asLoggableText, nodeBuilderMethods inherited from interface org.hibernate.query.sqm.tree.SqmTypedNode
getExpressible, getNodeJavaTypeMethods inherited from interface org.hibernate.query.sqm.tree.SqmVisitableNode
toHqlStringMethods inherited from interface jakarta.persistence.TupleElement
getAlias
-
Constructor Details
-
JpaCriteriaParameter
public JpaCriteriaParameter(String name, BindableType<? super T> type, boolean allowsMultiValuedBinding, NodeBuilder nodeBuilder) -
JpaCriteriaParameter
-
-
Method Details
-
copy
- Specified by:
copyin interfaceSqmExpression<T>- Specified by:
copyin interfaceSqmNode- Specified by:
copyin interfaceSqmParameter<T>- Specified by:
copyin interfaceSqmSelectableNode<T>- Specified by:
copyin interfaceSqmTypedNode<T>
-
getName
Description copied from interface:SqmParameterIf this represents a named parameter, return that parameter name; otherwise returnnull. -
getValue
-
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
-
getTupleLength
- Specified by:
getTupleLengthin interfaceSqmSelectableNode<T>
-
allowsMultiValuedBinding
public boolean allowsMultiValuedBinding()Description copied from interface:QueryParameterDoes this parameter allow multi-valued (collection, array, etc) binding?This is only valid for HQL/JPQL and (I think) Criteria queries, and is determined based on the context of the parameters declaration.
- Specified by:
allowsMultiValuedBindingin interfaceQueryParameter<T>- Returns:
trueindicates that multi-valued binding is allowed for this parameter
-
disallowMultiValuedBinding
public void disallowMultiValuedBinding()- Specified by:
disallowMultiValuedBindingin interfaceQueryParameterImplementor<T>
-
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.
-
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.
-
applyAnticipatedType
- Specified by:
applyAnticipatedTypein interfaceQueryParameterImplementor<T>
-
copy
Description copied from interface:SqmParameterMake a copy- Specified by:
copyin interfaceSqmParameter<T>
-
getHibernateType
Description copied from interface:QueryParameterGet the Hibernate Type associated with this parameter, if one. May returnnull.- Specified by:
getHibernateTypein interfaceQueryParameter<T>- Returns:
- The associated Hibernate Type, may be
null.
-
getParameterType
- Specified by:
getParameterTypein interfaceParameter<T>
-
internalApplyInferableType
- Overrides:
internalApplyInferableTypein classAbstractSqmExpression<T>
-
accept
Description copied from interface:SqmVisitableNodeAccept the walker per visitation- Specified by:
acceptin interfaceSqmVisitableNode
-
toMemento
- Specified by:
toMementoin interfaceQueryParameterImplementor<T>
-
appendHqlString
- Specified by:
appendHqlStringin interfaceSqmVisitableNode
-
compareTo
- Specified by:
compareToin interfaceComparable<T>- Specified by:
compareToin interfaceSqmParameter<T>
-
equals
-
hashCode
public int hashCode()
-