Class SqmJpaCriteriaParameterWrapper<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.SqmJpaCriteriaParameterWrapper<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
public class SqmJpaCriteriaParameterWrapper<T> extends AbstractSqmExpression<T> implements SqmParameter<T>
Acts as the per-use wrapper for a JpaCriteriaParameter (CriteriaBuilder.parameter(java.lang.Class<T>)). JpaCriteriaParameter is the "domain query parameter" (QueryParameterwhile SqmJpaCriteriaParameterWrapper is theSqmParameter- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description SqmJpaCriteriaParameterWrapper(BindableType<T> type, JpaCriteriaParameter<T> jpaCriteriaParameter, NodeBuilder criteriaBuilder)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <X> Xaccept(SemanticQueryWalker<X> walker)Unsupported.booleanallowMultiValuedBinding()Can a collection/array of values be bound to this parameter?voidappendHqlString(StringBuilder sb)intcompareTo(SqmParameter anotherParameter)SqmParameter<T>copy()Make a copySqmJpaCriteriaParameterWrapper<T>copy(SqmCopyContext context)BindableType<T>getAnticipatedType()Based on the context it is declared, what is the anticipated type for bind values?JpaCriteriaParameter<T>getJpaCriteriaParameter()StringgetName()If this represents a named parameter, return that parameter name; otherwise returnnull.Class<T>getParameterType()IntegergetPosition()If this represents a positional parameter, return that parameter position; otherwise returnnull.voidvisitSubSelectableNodes(Consumer<SqmSelectableNode<?>> jpaSelectionConsumer)Visit each of this selectable's direct sub-selectables - used to support JPA'sSelectionmodel (which is really a "selectable", just poorly named and poorly defined-
Methods inherited from class org.hibernate.query.sqm.tree.expression.AbstractSqmExpression
applyInferableType, as, asBigDecimal, asBigInteger, asDouble, asFloat, asInteger, asLong, asString, equalTo, equalTo, getJavaTypeDescriptor, in, in, in, in, internalApplyInferableType, isNotNull, isNull, nodeBuilder
-
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
applyInferableType, as, asBigDecimal, asBigInteger, asDouble, asFloat, asInteger, asLong, asString, cast, castAs, equalTo, equalTo, getNodeType, in, in, in, in, isNotNull, isNull
-
Methods inherited from interface org.hibernate.query.sqm.tree.SqmNode
asLoggableText, nodeBuilder
-
Methods inherited from interface org.hibernate.query.sqm.tree.select.SqmSelectableNode
getTupleLength
-
Methods inherited from interface org.hibernate.query.sqm.tree.SqmTypedNode
getExpressible, getNodeJavaType
-
Methods inherited from interface org.hibernate.query.sqm.tree.SqmVisitableNode
toHqlString
-
Methods inherited from interface jakarta.persistence.TupleElement
getAlias
-
-
-
-
Constructor Detail
-
SqmJpaCriteriaParameterWrapper
public SqmJpaCriteriaParameterWrapper(BindableType<T> type, JpaCriteriaParameter<T> jpaCriteriaParameter, NodeBuilder criteriaBuilder)
-
-
Method Detail
-
copy
public SqmJpaCriteriaParameterWrapper<T> copy(SqmCopyContext context)
- 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
public String getName()
Description copied from interface:SqmParameterIf this represents a named parameter, return that parameter name; otherwise returnnull.
-
getPosition
public Integer 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
-
getJpaCriteriaParameter
public JpaCriteriaParameter<T> getJpaCriteriaParameter()
-
getParameterType
public Class<T> getParameterType()
- Specified by:
getParameterTypein interfaceParameter<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
public BindableType<T> 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.
-
copy
public SqmParameter<T> copy()
Description copied from interface:SqmParameterMake a copy- Specified by:
copyin interfaceSqmParameter<T>
-
accept
public <X> X accept(SemanticQueryWalker<X> walker)
Unsupported. Visitation for a criteria parameter should be handled as part ofSemanticQueryWalker.visitJpaCriteriaParameter(org.hibernate.query.sqm.tree.expression.JpaCriteriaParameter<?>). This wrapper is intended just for representing unique SqmParameter references for each JpaCriteriaParameter occurrence in the SQM true as part of theQueryParametertoSqmParametertoJdbcParametertransformation. Each occurrence requires a unique SqmParameter to make sure we ultimately get the complete set of JdbcParameter references- Specified by:
acceptin interfaceSqmVisitableNode
-
visitSubSelectableNodes
public void visitSubSelectableNodes(Consumer<SqmSelectableNode<?>> jpaSelectionConsumer)
Description copied from interface:SqmSelectableNodeVisit each of this selectable's direct sub-selectables - used to support JPA'sSelectionmodel (which is really a "selectable", just poorly named and poorly defined- Specified by:
visitSubSelectableNodesin interfaceSqmExpression<T>- Specified by:
visitSubSelectableNodesin interfaceSqmSelectableNode<T>- See Also:
JpaSelection.getSelectionItems(),Selection.getCompoundSelectionItems()
-
appendHqlString
public void appendHqlString(StringBuilder sb)
- Specified by:
appendHqlStringin interfaceSqmVisitableNode
-
compareTo
public int compareTo(SqmParameter anotherParameter)
- Specified by:
compareToin interfaceComparable<T>- Specified by:
compareToin interfaceSqmParameter<T>
-
-