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
,JpaCriteriaNode
,JpaExpression<T>
,JpaParameterExpression<T>
,JpaSelection<T>
,JpaTupleElement<T>
,SqmExpression<T>
,SqmParameter<T>
,SqmSelectableNode<T>
,SqmCacheable
,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"
(QueryParameter
while
SqmJpaCriteriaParameterWrapper
is the SqmParameter
- See Also:
-
Field Summary
Fields inherited from interface org.hibernate.query.sqm.tree.expression.SqmParameter
COMPARATOR
-
Constructor Summary
ConstructorsConstructorDescriptionSqmJpaCriteriaParameterWrapper
(BindableType<T> type, JpaCriteriaParameter<T> jpaCriteriaParameter, int criteriaParameterId, int unnamedParameterId, NodeBuilder criteriaBuilder) -
Method Summary
Modifier and TypeMethodDescription<X> X
accept
(SemanticQueryWalker<X> walker) Unsupported.boolean
Can a collection/array of values be bound to this parameter?void
appendHqlString
(StringBuilder hql, SqmRenderContext context) int
copy()
Make a copycopy
(SqmCopyContext context) final boolean
Based on the context it is declared, what is the anticipated type for bind values?int
The 0-based encounter of aJpaCriteriaParameter
instance in aSqmQuerySource.CRITERIA
query.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
.int
The 0-based encounter of an unnamedJpaCriteriaParameter
instance in aSqmQuerySource.CRITERIA
query.int
hashCode()
boolean
isCompatible
(Object object) void
visitSubSelectableNodes
(Consumer<SqmSelectableNode<?>> jpaSelectionConsumer) Visit each of this selectable's direct sub-selectables - used to support JPA'sSelection
model (which is really a "selectable", just poorly named and poorly definedMethods 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, 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, finalize, getClass, 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, notEqualTo, notEqualTo
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 Details
-
SqmJpaCriteriaParameterWrapper
public SqmJpaCriteriaParameterWrapper(BindableType<T> type, JpaCriteriaParameter<T> jpaCriteriaParameter, int criteriaParameterId, int unnamedParameterId, NodeBuilder criteriaBuilder)
-
-
Method Details
-
copy
- Specified by:
copy
in interfaceSqmExpression<T>
- Specified by:
copy
in interfaceSqmNode
- Specified by:
copy
in interfaceSqmParameter<T>
- Specified by:
copy
in interfaceSqmSelectableNode<T>
- Specified by:
copy
in interfaceSqmTypedNode<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
-
getJpaCriteriaParameter
-
getCriteriaParameterId
public int getCriteriaParameterId()The 0-based encounter of aJpaCriteriaParameter
instance in aSqmQuerySource.CRITERIA
query.- See Also:
-
getUnnamedParameterId
public int getUnnamedParameterId()The 0-based encounter of an unnamedJpaCriteriaParameter
instance in aSqmQuerySource.CRITERIA
query. If thegetJpaCriteriaParameter()
has a name, returns -1.- See Also:
-
getParameterType
- Specified by:
getParameterType
in interfaceParameter<T>
-
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.
-
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.
-
copy
Description copied from interface:SqmParameter
Make a copy- Specified by:
copy
in interfaceSqmParameter<T>
-
accept
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 eachJpaCriteriaParameter
occurrence in the SQM tree as part of theQueryParameter
toSqmParameter
toJdbcParameter
transformation. Each occurrence requires a uniqueSqmParameter
to make sure we ultimately get the complete set ofJdbcParameter
references.- Specified by:
accept
in interfaceSqmVisitableNode
-
visitSubSelectableNodes
Description copied from interface:SqmSelectableNode
Visit each of this selectable's direct sub-selectables - used to support JPA'sSelection
model (which is really a "selectable", just poorly named and poorly defined- Specified by:
visitSubSelectableNodes
in interfaceSqmExpression<T>
- Specified by:
visitSubSelectableNodes
in interfaceSqmSelectableNode<T>
- See Also:
-
appendHqlString
- Specified by:
appendHqlString
in interfaceSqmVisitableNode
-
equals
-
hashCode
public int hashCode() -
isCompatible
- Specified by:
isCompatible
in interfaceSqmCacheable
-
cacheHashCode
public int cacheHashCode()- Specified by:
cacheHashCode
in interfaceSqmCacheable
-