Interface Query<R>
- Type Parameters:
R
- The result type, for typed queries, orObject
for untyped queries
- All Superinterfaces:
CommonQueryContract
,MutationQuery
,Query
,SelectionQuery<R>
,TypedQuery<R>
- All Known Subinterfaces:
NativeQuery<T>
,NativeQueryImplementor<R>
,ProcedureCallImplementor<R>
,QueryImplementor<R>
,SqmQueryImplementor<R>
- All Known Implementing Classes:
AbstractQuery
,NativeQueryImpl
,ProcedureCallImpl
,QuerySqmImpl
- a query written in HQL,
- a named query written in HQL or native SQL, or
- a criteria query.
The subtype NativeQuery
represents a query written in native SQL.
This type simply mixes the TypedQuery
interface defined by JPA with
SelectionQuery
and MutationQuery
. Unfortunately, JPA does
not distinguish between selection queries and
mutation queries, so we lose that distinction here.
However, every Query
may logically be classified as one or the other.
A Query
may be obtained from the Session
by
calling:
QueryProducer.createQuery(String, Class)
, passing the HQL as a string,QueryProducer.createQuery(jakarta.persistence.criteria.CriteriaQuery)
, passing a criteria object, orQueryProducer.createNamedQuery(String, Class)
passing the name of a query defined usingNamedQuery
orNamedNativeQuery
.
A Query
controls how a query is executed, and allows arguments to be
bound to its parameters.
- Selection queries are usually executed using
getResultList()
orgetSingleResult()
. - The methods
setMaxResults(int)
andsetFirstResult(int)
control limits and pagination. - The various overloads of
setParameter(String, Object)
andsetParameter(int, Object)
allow arguments to be bound to named and ordinal parameters defined by the query.
Note that this interface offers no real advantages over SelectionQuery
except for compatibility with the JPA-defined TypedQuery
interface.
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionaddQueryHint
(String hint) Add a database query hint to the SQL query.addRestriction
(Restriction<? super R> restriction) If the result type of this query is an entity class, add a rule for restricting the query results.applyFetchGraph
(RootGraph graph) Deprecated.applyGraph
(RootGraph graph, GraphSemantic semantic) Deprecated.UsesetEntityGraph(EntityGraph, GraphSemantic)
which is more type safeapplyLoadGraph
(RootGraph graph) Deprecated.UsesetEntityGraph(EntityGraph, GraphSemantic)
which is more type safedisableFetchProfile
(String profileName) Disable thefetch profile
with the given name in this session.enableFetchProfile
(String profileName) Enable thefetch profile
for this query.int
Execute an insert, update, or delete statement, and return the number of affected entities.Obtain the comment currently associated with this query.Obtains theLockOptions
in effect for this query.Access to information about query parameters.Get the execution options for thisQuery
.The query as a string, ornull
in the case of a criteria query.Execute the query and return the query results as aList
.Execute the query and return the query results as aStream
.Get theQueryProducer
which produced thisQuery
, that is, theSession
orStatelessSession
that was used to create thisQuery
instance.Execute the query and return the single result of the query, throwing an exception if the query returns no results.list()
Execute the query and return the query results as aList
.scroll()
Execute the query and return the results in a scrollable form.scroll
(ScrollMode scrollMode) Execute the query and return the results in a scrollable form.setCacheable
(boolean cacheable) Enable/disable second level query (result) caching for this query.setCacheMode
(CacheMode cacheMode) Set the currentCacheMode
in effect for this query.setCacheRegion
(String cacheRegion) Set the name of the cache region where query results should be cached (assumingSelectionQuery.isCacheable()
).setCacheRetrieveMode
(CacheRetrieveMode cacheRetrieveMode) setCacheStoreMode
(CacheStoreMode cacheStoreMode) setComment
(String comment) Set the comment for this query.setEntityGraph
(EntityGraph<R> graph, GraphSemantic semantic) Apply anEntityGraph
to the query.setFetchSize
(int fetchSize) Sets a JDBC fetch size hint for the query.setFirstResult
(int startPosition) Set the first query result row to return.setFlushMode
(FlushModeType flushMode) Deprecated.setHibernateFlushMode
(FlushMode flushMode) Deprecated.Set a hint.setLockMode
(LockModeType lockMode) Specify the rootLockModeType
for the querysetLockMode
(String alias, LockMode lockMode) Set theLockMode
to use for particular alias defined in theFROM
clause of the query.setLockOptions
(LockOptions lockOptions) Apply the given lock options to this query.setMaxResults
(int maxResults) Set the maximum number of query result rows to return.If the result type of this query is an entity class, add one or more rules for ordering the query results.If the result type of this query is an entity class, add a rule for ordering the query results.Set the page of results to return.setParameter
(int parameter, Object argument) Bind the given argument to an ordinal query parameter.setParameter
(int parameter, Instant argument, TemporalType temporalType) Bind anInstant
value to the ordinal query parameter using just the portion indicated by the givenTemporalType
.setParameter
(int parameter, Calendar argument, TemporalType temporalType) Query
overridesetParameter
(int parameter, Date argument, TemporalType temporalType) Query
overridesetParameter
(int parameter, P argument, Class<P> type) Bind the given argument to an ordinal query parameter using the given Class reference to attempt to determine theBindableType
to use.setParameter
(int parameter, P argument, BindableType<P> type) Bind the given argument to an ordinal query parameter using the givenBindableType
.setParameter
(Parameter<Calendar> parameter, Calendar argument, TemporalType temporalType) Query
overridesetParameter
(Parameter<Date> parameter, Date argument, TemporalType temporalType) Query
overridesetParameter
(Parameter<T> parameter, T argument) Query
overridesetParameter
(String parameter, Object argument) Bind the given argument to a named query parameter.setParameter
(String parameter, Instant argument, TemporalType temporalType) Bind anInstant
value to the named query parameter using just the portion indicated by the givenTemporalType
.setParameter
(String parameter, Calendar argument, TemporalType temporalType) Query
overridesetParameter
(String parameter, Date argument, TemporalType temporalType) Query
overridesetParameter
(String parameter, P argument, Class<P> type) Bind the given argument to a named query parameter using the given Class reference to attempt to determine theBindableType
to use.setParameter
(String parameter, P argument, BindableType<P> type) Bind the given argument to a named query parameter using the givenBindableType
.setParameter
(QueryParameter<P> parameter, P argument, Class<P> type) Bind an argument to the query parameter represented by the givenQueryParameter
using the given Class reference to attempt to determine theBindableType
to use.setParameter
(QueryParameter<P> parameter, P argument, BindableType<P> type) Bind an argument to the query parameter represented by the givenQueryParameter
using the givenBindableType
.setParameter
(QueryParameter<T> parameter, T argument) Bind an argument to the query parameter represented by the givenQueryParameter
.setParameterList
(int parameter, Object[] arguments) Bind multiple arguments to an ordinal query parameter.setParameterList
(int parameter, Collection arguments) Bind multiple arguments to an ordinal query parameter.setParameterList
(int parameter, Collection<? extends P> arguments, Class<P> javaType) Bind multiple arguments to an ordinal query parameter using the given Class reference to attempt to determine theBindableType
to use.setParameterList
(int parameter, Collection<? extends P> arguments, BindableType<P> type) Bind multiple arguments to an ordinal query parameter using the givenBindableType
.setParameterList
(int parameter, P[] arguments, Class<P> javaType) Bind multiple arguments to an ordinal query parameter using the givenClass
reference to attempt to determine theBindableType
to use.setParameterList
(int parameter, P[] arguments, BindableType<P> type) Bind multiple arguments to an ordinal query parameter using the givenBindableType
.setParameterList
(String parameter, Object[] values) Bind multiple arguments to a named query parameter.setParameterList
(String parameter, Collection arguments) Bind multiple arguments to a named query parameter.setParameterList
(String parameter, Collection<? extends P> arguments, Class<P> javaType) Bind multiple arguments to a named query parameter using the given Class reference to attempt to determine theBindableType
to use.setParameterList
(String parameter, Collection<? extends P> arguments, BindableType<P> type) Bind multiple arguments to a named query parameter using the givenBindableType
.setParameterList
(String parameter, P[] arguments, Class<P> javaType) Bind multiple arguments to a named query parameter using the given Class reference to attempt to determine theBindableType
to use.setParameterList
(String parameter, P[] arguments, BindableType<P> type) Bind multiple arguments to a named query parameter using the givenBindableType
.setParameterList
(QueryParameter<P> parameter, Collection<? extends P> arguments) Bind multiple arguments to the query parameter represented by the givenQueryParameter
.setParameterList
(QueryParameter<P> parameter, Collection<? extends P> arguments, Class<P> javaType) Bind multiple arguments to the query parameter represented by the givenQueryParameter
using the given Class reference to attempt to determine theBindableType
to use.setParameterList
(QueryParameter<P> parameter, Collection<? extends P> arguments, BindableType<P> type) Bind multiple arguments to the query parameter represented by the givenQueryParameter
, inferring theBindableType
.setParameterList
(QueryParameter<P> parameter, P[] arguments) Bind multiple arguments to the query parameter represented by the givenQueryParameter
.setParameterList
(QueryParameter<P> parameter, P[] arguments, Class<P> javaType) Bind multiple arguments to the query parameter represented by the givenQueryParameter
using the givenClass
reference to attempt to determine theBindableType
to use.setParameterList
(QueryParameter<P> parameter, P[] arguments, BindableType<P> type) Bind multiple arguments to the query parameter represented by the givenQueryParameter
, inferring theBindableType
.setProperties
(Object bean) Bind the property values of the given bean to named parameters of the query, matching property names with parameter names and mapping property types to Hibernate types using heuristics.setProperties
(Map bean) Bind the values of the givenMap
for each named parameters of the query, matching key names with parameter names and mapping value types to Hibernate types using heuristics.setQueryFlushMode
(QueryFlushMode queryFlushMode) Set theQueryFlushMode
to use for this query.setReadOnly
(boolean readOnly) Set the read-only/modifiable mode for entities and proxies loaded by thisQuery
.setResultListTransformer
(ResultListTransformer<R> transformer) Set aResultListTransformer
.default <T> Query<T>
setResultTransformer
(ResultTransformer<T> transformer) setTimeout
(int timeout) Set the query timeout in seconds.<T> Query<T>
setTupleTransformer
(TupleTransformer<T> transformer) Set aTupleTransformer
.stream()
Execute the query and return the query results as aStream
.Execute the query and return the single result of the query, ornull
if the query returns no results.Execute the query and return the single result of the query as an instance ofOptional
.Methods inherited from interface org.hibernate.query.CommonQueryContract
getFlushMode, getHibernateFlushMode, getQueryFlushMode, getTimeout
Methods inherited from interface jakarta.persistence.Query
getCacheRetrieveMode, getCacheStoreMode, getFirstResult, getFlushMode, getHints, getLockMode, getMaxResults, getParameter, getParameter, getParameter, getParameter, getParameters, getParameterValue, getParameterValue, getParameterValue, getTimeout, isBound, unwrap
Methods inherited from interface org.hibernate.query.SelectionQuery
getCacheMode, getCacheRegion, getCacheRetrieveMode, getCacheStoreMode, getFetchSize, getFirstResult, getHibernateLockMode, getKeyedResultList, getLockMode, getMaxResults, getResultCount, getSingleResultOrNull, isCacheable, isQueryPlanCacheable, isReadOnly, setFollowOnLocking, setHibernateLockMode, setQueryPlanCacheable
Methods inherited from interface jakarta.persistence.TypedQuery
getSingleResultOrNull, setTimeout
-
Method Details
-
list
Execute the query and return the query results as aList
. If the query contains multiple items in the selection list, then by default each result in the list is packaged in an array of typeObject[]
.- Specified by:
list
in interfaceSelectionQuery<R>
- Returns:
- the result list
-
getResultList
Execute the query and return the query results as aList
. If the query contains multiple items in the selection list, then by default each result in the list is packaged in an array of typeObject[]
.- Specified by:
getResultList
in interfaceQuery
- Specified by:
getResultList
in interfaceSelectionQuery<R>
- Specified by:
getResultList
in interfaceTypedQuery<R>
- Returns:
- the results as a list
- Implementation Note:
- Delegates to
list()
-
scroll
ScrollableResults<R> scroll()Execute the query and return the results in a scrollable form.This overload simply calls
scroll(ScrollMode)
using the dialect default scroll mode.- Specified by:
scroll
in interfaceSelectionQuery<R>
- API Note:
- The exact behavior of this method depends somewhat
on the level of JDBC driver support for scrollable
ResultSet
s, and so is not very portable between database.
-
scroll
Execute the query and return the results in a scrollable form. The capabilities of the returnedScrollableResults
depend on the specifiedScrollMode
.- Specified by:
scroll
in interfaceSelectionQuery<R>
- API Note:
- The exact behavior of this method depends somewhat
on the level of JDBC driver support for scrollable
ResultSet
s, and so is not very portable between database.
-
getResultStream
Execute the query and return the query results as aStream
. If the query contains multiple items in the selection list, then by default each result in the stream is packaged in an array of typeObject[]
.The client should call
BaseStream.close()
after processing the stream so that resources are freed as soon as possible.- Specified by:
getResultStream
in interfaceQuery
- Specified by:
getResultStream
in interfaceSelectionQuery<R>
- Specified by:
getResultStream
in interfaceTypedQuery<R>
- Returns:
- The results as a
Stream
- Implementation Note:
- Delegates to
stream()
, which in turn delegates to this method. Implementors should implement at least one of these methods.
-
stream
Execute the query and return the query results as aStream
. If the query contains multiple items in the selection list, then by default each result in the stream is packaged in an array of typeObject[]
.The client should call
BaseStream.close()
after processing the stream so that resources are freed as soon as possible.- Specified by:
stream
in interfaceSelectionQuery<R>
- Returns:
- The results as a
Stream
- Since:
- 5.2
-
uniqueResult
R uniqueResult()Execute the query and return the single result of the query, ornull
if the query returns no results.- Specified by:
uniqueResult
in interfaceSelectionQuery<R>
- Returns:
- the single result or
null
if there is no result to return - Throws:
NonUniqueResultException
- if there is more than one matching result
-
getSingleResult
R getSingleResult()Execute the query and return the single result of the query, throwing an exception if the query returns no results.- Specified by:
getSingleResult
in interfaceQuery
- Specified by:
getSingleResult
in interfaceSelectionQuery<R>
- Specified by:
getSingleResult
in interfaceTypedQuery<R>
- Returns:
- the single result, only if there is exactly one
- Throws:
NonUniqueResultException
- if there is more than one matching resultNoResultException
- if there is no result to return
-
uniqueResultOptional
Execute the query and return the single result of the query as an instance ofOptional
.- Specified by:
uniqueResultOptional
in interfaceSelectionQuery<R>
- Returns:
- the single result as an
Optional
- Throws:
NonUniqueResultException
- if there is more than one matching result
-
executeUpdate
int executeUpdate()Execute an insert, update, or delete statement, and return the number of affected entities.For use with instances of
MutationQuery
created usingQueryProducer.createMutationQuery(String)
,QueryProducer.createNamedMutationQuery(String)
,QueryProducer.createNativeMutationQuery(String)
,QueryProducer.createMutationQuery(jakarta.persistence.criteria.CriteriaUpdate)
, orQueryProducer.createMutationQuery(jakarta.persistence.criteria.CriteriaDelete)
.- Specified by:
executeUpdate
in interfaceMutationQuery
- Specified by:
executeUpdate
in interfaceQuery
- Returns:
- the number of affected entity instances (may differ from the number of affected rows)
- See Also:
-
QueryProducer.createMutationQuery(java.lang.String)
QueryProducer.createMutationQuery(String)
QueryProducer.createNamedMutationQuery(String)
QueryProducer.createNativeMutationQuery(String)
QueryProducer.createMutationQuery(jakarta.persistence.criteria.CriteriaUpdate)
QueryProducer.createMutationQuery(jakarta.persistence.criteria.CriteriaDelete)
Query.executeUpdate()
QueryProducer.createMutationQuery(java.lang.String)
- API Note:
- This method is needed because this interface extends
Query
, which defines this method. SeeMutationQuery
andSelectionQuery
.
-
getSession
SharedSessionContract getSession()Get theQueryProducer
which produced thisQuery
, that is, theSession
orStatelessSession
that was used to create thisQuery
instance.- Returns:
- The producer of this query
-
getQueryString
String getQueryString()The query as a string, ornull
in the case of a criteria query. -
applyGraph
Deprecated.UsesetEntityGraph(EntityGraph, GraphSemantic)
which is more type safeApply the given graph using the given semantic- Parameters:
graph
- The graph to apply.semantic
- The semantic to use when applying the graph
-
applyFetchGraph
Deprecated.UsesetEntityGraph(EntityGraph, GraphSemantic)
which is more type safeApply the given graph using fetch semantics.- API Note:
- This method calls
applyGraph(RootGraph, GraphSemantic)
usingGraphSemantic.FETCH
as the semantic.
-
applyLoadGraph
Deprecated.UsesetEntityGraph(EntityGraph, GraphSemantic)
which is more type safeApply the given graph using load semantics.- API Note:
- This method calls
applyGraph(RootGraph, GraphSemantic)
usingGraphSemantic.LOAD
as the semantic.
-
getComment
String getComment()Obtain the comment currently associated with this query.If SQL commenting is enabled, the comment will be added to the SQL query sent to the database, which may be useful for identifying the source of troublesome queries.
SQL commenting may be enabled using the configuration property "hibernate.use_sql_comments".
- Specified by:
getComment
in interfaceCommonQueryContract
- Returns:
- The comment.
-
setComment
Set the comment for this query.If SQL commenting is enabled, the comment will be added to the SQL query sent to the database, which may be useful for identifying the source of troublesome queries.
SQL commenting may be enabled using the configuration property "hibernate.use_sql_comments".
- Specified by:
setComment
in interfaceCommonQueryContract
- Specified by:
setComment
in interfaceMutationQuery
- Specified by:
setComment
in interfaceSelectionQuery<R>
- Parameters:
comment
- The human-readable comment- Returns:
this
, for method chaining- See Also:
-
addQueryHint
Add a database query hint to the SQL query.A database hint is a completely different concept to a JPA hint specified using
QueryHint
orQuery.getHints()
. These are hints to the JPA provider.Multiple query hints may be specified. The operation
Dialect.getQueryHintString(String, List)
determines how the hint is actually added to the SQL query.- Parameters:
hint
- The database specific query hint to add.
-
getLockOptions
LockOptions getLockOptions()Obtains theLockOptions
in effect for this query.- Specified by:
getLockOptions
in interfaceSelectionQuery<R>
- Returns:
- The
LockOptions
currently in effect - See Also:
-
setLockOptions
Apply the given lock options to this query. Alias-specific lock modes in the given lock options are merged with any alias-specific lock mode which have already been set. If a lock mode has already been specified for an alias that is among the aliases in the given lock options, the lock mode specified in the given lock options overrides the lock mode that was already set.- Parameters:
lockOptions
- The lock options to apply to the query.- Returns:
this
, for method chaining- See Also:
-
setLockMode
Set theLockMode
to use for particular alias defined in theFROM
clause of the query.The alias-specific lock modes specified here are added to the
LockOption
s.The effect of alias-specific locking is quite dependent on the driver and database. For maximum portability, the given lock mode should be
LockMode.PESSIMISTIC_WRITE
.- Specified by:
setLockMode
in interfaceSelectionQuery<R>
- Parameters:
alias
- A query aliaslockMode
- The lock mode to apply- Returns:
this
, for method chaining- See Also:
-
setTupleTransformer
Set aTupleTransformer
. -
setResultListTransformer
Set aResultListTransformer
. -
getQueryOptions
QueryOptions getQueryOptions()Get the execution options for thisQuery
. Many of the setters of this object update the state of the returnedQueryOptions
. This is useful because it gives access to s primitive value in its (nullable) wrapper form, rather than the primitive form as required by JPA. This allows us to distinguish whether a value has been explicitly set by the client.- Returns:
- Return the encapsulation of this query's options.
-
getParameterMetadata
ParameterMetadata getParameterMetadata()Access to information about query parameters.- Returns:
- information about query parameters.
-
setParameter
Bind the given argument to a named query parameter.If the type of the parameter cannot be inferred from the context in which it occurs, use one of the forms accept a "type".
- Specified by:
setParameter
in interfaceCommonQueryContract
- Specified by:
setParameter
in interfaceMutationQuery
- Specified by:
setParameter
in interfaceQuery
- Specified by:
setParameter
in interfaceSelectionQuery<R>
- Specified by:
setParameter
in interfaceTypedQuery<R>
- See Also:
-
setParameter
Bind the given argument to a named query parameter using the given Class reference to attempt to determine theBindableType
to use. If unable to determine an appropriateBindableType
,setParameter(String, Object)
is used.- Specified by:
setParameter
in interfaceCommonQueryContract
- Specified by:
setParameter
in interfaceMutationQuery
- Specified by:
setParameter
in interfaceSelectionQuery<R>
- See Also:
-
setParameter
Bind the given argument to a named query parameter using the givenBindableType
.- Specified by:
setParameter
in interfaceCommonQueryContract
- Specified by:
setParameter
in interfaceMutationQuery
- Specified by:
setParameter
in interfaceSelectionQuery<R>
-
setParameter
Bind anInstant
value to the named query parameter using just the portion indicated by the givenTemporalType
.- Specified by:
setParameter
in interfaceCommonQueryContract
- Specified by:
setParameter
in interfaceMutationQuery
- Specified by:
setParameter
in interfaceSelectionQuery<R>
-
setParameter
Query
override- Specified by:
setParameter
in interfaceCommonQueryContract
- Specified by:
setParameter
in interfaceMutationQuery
- Specified by:
setParameter
in interfaceQuery
- Specified by:
setParameter
in interfaceSelectionQuery<R>
- Specified by:
setParameter
in interfaceTypedQuery<R>
- See Also:
-
setParameter
Query
override- Specified by:
setParameter
in interfaceCommonQueryContract
- Specified by:
setParameter
in interfaceMutationQuery
- Specified by:
setParameter
in interfaceQuery
- Specified by:
setParameter
in interfaceSelectionQuery<R>
- Specified by:
setParameter
in interfaceTypedQuery<R>
- See Also:
-
setParameter
Bind the given argument to an ordinal query parameter.If the type of the parameter cannot be inferred from the context in which it occurs, use one of the forms which accepts a "type".
- Specified by:
setParameter
in interfaceCommonQueryContract
- Specified by:
setParameter
in interfaceMutationQuery
- Specified by:
setParameter
in interfaceQuery
- Specified by:
setParameter
in interfaceSelectionQuery<R>
- Specified by:
setParameter
in interfaceTypedQuery<R>
- See Also:
-
setParameter
Bind the given argument to an ordinal query parameter using the given Class reference to attempt to determine theBindableType
to use. If unable to determine an appropriateBindableType
,setParameter(int, Object)
is used.- Specified by:
setParameter
in interfaceCommonQueryContract
- Specified by:
setParameter
in interfaceMutationQuery
- Specified by:
setParameter
in interfaceSelectionQuery<R>
- See Also:
-
setParameter
Bind the given argument to an ordinal query parameter using the givenBindableType
.- Specified by:
setParameter
in interfaceCommonQueryContract
- Specified by:
setParameter
in interfaceMutationQuery
- Specified by:
setParameter
in interfaceSelectionQuery<R>
-
setParameter
Bind anInstant
value to the ordinal query parameter using just the portion indicated by the givenTemporalType
.- Specified by:
setParameter
in interfaceCommonQueryContract
- Specified by:
setParameter
in interfaceMutationQuery
- Specified by:
setParameter
in interfaceSelectionQuery<R>
-
setParameter
Query
override- Specified by:
setParameter
in interfaceCommonQueryContract
- Specified by:
setParameter
in interfaceMutationQuery
- Specified by:
setParameter
in interfaceQuery
- Specified by:
setParameter
in interfaceSelectionQuery<R>
- Specified by:
setParameter
in interfaceTypedQuery<R>
- See Also:
-
setParameter
Query
override- Specified by:
setParameter
in interfaceCommonQueryContract
- Specified by:
setParameter
in interfaceMutationQuery
- Specified by:
setParameter
in interfaceQuery
- Specified by:
setParameter
in interfaceSelectionQuery<R>
- Specified by:
setParameter
in interfaceTypedQuery<R>
- See Also:
-
setParameter
Bind an argument to the query parameter represented by the givenQueryParameter
.If the type of the parameter cannot be inferred from the context in which it occurs, use one of the forms which accepts a "type".
- Specified by:
setParameter
in interfaceCommonQueryContract
- Specified by:
setParameter
in interfaceMutationQuery
- Specified by:
setParameter
in interfaceSelectionQuery<R>
- Parameters:
parameter
- the query parameter mementoargument
- the argument, which might be null- Returns:
this
, for method chaining- See Also:
-
setParameter
Bind an argument to the query parameter represented by the givenQueryParameter
using the given Class reference to attempt to determine theBindableType
to use. If unable to determine an appropriateBindableType
,setParameter(QueryParameter, Object)
is used- Specified by:
setParameter
in interfaceCommonQueryContract
- Specified by:
setParameter
in interfaceMutationQuery
- Specified by:
setParameter
in interfaceSelectionQuery<R>
- Parameters:
parameter
- the query parameter mementoargument
- the argument, which might be nulltype
- aBindableType
representing the type of the parameter- Returns:
this
, for method chaining- See Also:
-
setParameter
Bind an argument to the query parameter represented by the givenQueryParameter
using the givenBindableType
.- Specified by:
setParameter
in interfaceCommonQueryContract
- Specified by:
setParameter
in interfaceMutationQuery
- Specified by:
setParameter
in interfaceSelectionQuery<R>
- Parameters:
parameter
- the query parameter mementoargument
- the argument, which might be nulltype
- anBindableType
representing the type of the parameter- Returns:
this
, for method chaining
-
setParameter
Query
override- Specified by:
setParameter
in interfaceCommonQueryContract
- Specified by:
setParameter
in interfaceMutationQuery
- Specified by:
setParameter
in interfaceQuery
- Specified by:
setParameter
in interfaceSelectionQuery<R>
- Specified by:
setParameter
in interfaceTypedQuery<R>
- See Also:
-
setParameter
Query
override- Specified by:
setParameter
in interfaceCommonQueryContract
- Specified by:
setParameter
in interfaceMutationQuery
- Specified by:
setParameter
in interfaceQuery
- Specified by:
setParameter
in interfaceSelectionQuery<R>
- Specified by:
setParameter
in interfaceTypedQuery<R>
- See Also:
-
setParameter
Query
override- Specified by:
setParameter
in interfaceCommonQueryContract
- Specified by:
setParameter
in interfaceMutationQuery
- Specified by:
setParameter
in interfaceQuery
- Specified by:
setParameter
in interfaceSelectionQuery<R>
- Specified by:
setParameter
in interfaceTypedQuery<R>
- See Also:
-
setParameterList
Bind multiple arguments to a named query parameter.The "type mapping" for the binding is inferred from the type of the first collection element.
- Specified by:
setParameterList
in interfaceCommonQueryContract
- Specified by:
setParameterList
in interfaceMutationQuery
- Specified by:
setParameterList
in interfaceSelectionQuery<R>
- Returns:
this
, for method chaining- See Also:
- API Note:
- This is used for binding a list of values to an expression
such as
entity.field in (:values)
.
-
setParameterList
<P> Query<R> setParameterList(String parameter, Collection<? extends P> arguments, Class<P> javaType) Bind multiple arguments to a named query parameter using the given Class reference to attempt to determine theBindableType
to use. If unable to determine an appropriateBindableType
,setParameterList(String, Collection)
is used.- Specified by:
setParameterList
in interfaceCommonQueryContract
- Specified by:
setParameterList
in interfaceMutationQuery
- Specified by:
setParameterList
in interfaceSelectionQuery<R>
- Returns:
this
, for method chaining- See Also:
- API Note:
- This is used for binding a list of values to an expression
such as
entity.field in (:values)
.
-
setParameterList
<P> Query<R> setParameterList(String parameter, Collection<? extends P> arguments, BindableType<P> type) Bind multiple arguments to a named query parameter using the givenBindableType
.- Specified by:
setParameterList
in interfaceCommonQueryContract
- Specified by:
setParameterList
in interfaceMutationQuery
- Specified by:
setParameterList
in interfaceSelectionQuery<R>
- Returns:
this
, for method chaining- API Note:
- This is used for binding a list of values to an expression
such as
entity.field in (:values)
.
-
setParameterList
Bind multiple arguments to a named query parameter.The "type mapping" for the binding is inferred from the type of the first collection element.
- Specified by:
setParameterList
in interfaceCommonQueryContract
- Specified by:
setParameterList
in interfaceMutationQuery
- Specified by:
setParameterList
in interfaceSelectionQuery<R>
- Returns:
this
, for method chaining- API Note:
- This is used for binding a list of values to an expression
such as
entity.field in (:values)
.
-
setParameterList
Bind multiple arguments to a named query parameter using the given Class reference to attempt to determine theBindableType
to use. If unable to determine an appropriateBindableType
,setParameterList(String, Collection)
is used.- Specified by:
setParameterList
in interfaceCommonQueryContract
- Specified by:
setParameterList
in interfaceMutationQuery
- Specified by:
setParameterList
in interfaceSelectionQuery<R>
- Returns:
this
, for method chaining- See Also:
- API Note:
- This is used for binding a list of values to an expression
such as
entity.field in (:values)
.
-
setParameterList
Bind multiple arguments to a named query parameter using the givenBindableType
.- Specified by:
setParameterList
in interfaceCommonQueryContract
- Specified by:
setParameterList
in interfaceMutationQuery
- Specified by:
setParameterList
in interfaceSelectionQuery<R>
- Returns:
this
, for method chaining- API Note:
- This is used for binding a list of values to an expression
such as
entity.field in (:values)
.
-
setParameterList
Bind multiple arguments to an ordinal query parameter.The "type mapping" for the binding is inferred from the type of the first collection element.
- Specified by:
setParameterList
in interfaceCommonQueryContract
- Specified by:
setParameterList
in interfaceMutationQuery
- Specified by:
setParameterList
in interfaceSelectionQuery<R>
- Returns:
this
, for method chaining- API Note:
- This is used for binding a list of values to an expression
such as
entity.field in (:values)
.
-
setParameterList
Bind multiple arguments to an ordinal query parameter using the given Class reference to attempt to determine theBindableType
to use. If unable to determine an appropriateBindableType
,setParameterList(String, Collection)
is used.- Specified by:
setParameterList
in interfaceCommonQueryContract
- Specified by:
setParameterList
in interfaceMutationQuery
- Specified by:
setParameterList
in interfaceSelectionQuery<R>
- Returns:
this
, for method chaining- See Also:
- API Note:
- This is used for binding a list of values to an expression
such as
entity.field in (:values)
.
-
setParameterList
<P> Query<R> setParameterList(int parameter, Collection<? extends P> arguments, BindableType<P> type) Bind multiple arguments to an ordinal query parameter using the givenBindableType
.- Specified by:
setParameterList
in interfaceCommonQueryContract
- Specified by:
setParameterList
in interfaceMutationQuery
- Specified by:
setParameterList
in interfaceSelectionQuery<R>
- Returns:
this
, for method chaining- API Note:
- This is used for binding a list of values to an expression
such as
entity.field in (:values)
.
-
setParameterList
Bind multiple arguments to an ordinal query parameter.The "type mapping" for the binding is inferred from the type of the first collection element.
- Specified by:
setParameterList
in interfaceCommonQueryContract
- Specified by:
setParameterList
in interfaceMutationQuery
- Specified by:
setParameterList
in interfaceSelectionQuery<R>
- Returns:
this
, for method chaining- API Note:
- This is used for binding a list of values to an expression
such as
entity.field in (:values)
.
-
setParameterList
Bind multiple arguments to an ordinal query parameter using the givenClass
reference to attempt to determine theBindableType
to use. If unable to determine an appropriateBindableType
,setParameterList(String, Collection)
is used.- Specified by:
setParameterList
in interfaceCommonQueryContract
- Specified by:
setParameterList
in interfaceMutationQuery
- Specified by:
setParameterList
in interfaceSelectionQuery<R>
- Returns:
this
, for method chaining- See Also:
- API Note:
- This is used for binding a list of values to an expression
such as
entity.field in (:values)
.
-
setParameterList
Bind multiple arguments to an ordinal query parameter using the givenBindableType
.- Specified by:
setParameterList
in interfaceCommonQueryContract
- Specified by:
setParameterList
in interfaceMutationQuery
- Specified by:
setParameterList
in interfaceSelectionQuery<R>
- Returns:
this
, for method chaining- API Note:
- This is used for binding a list of values to an expression
such as
entity.field in (:values)
.
-
setParameterList
Bind multiple arguments to the query parameter represented by the givenQueryParameter
.The type of the parameter is inferred from the context in which it occurs, and from the type of the first given argument.
- Specified by:
setParameterList
in interfaceCommonQueryContract
- Specified by:
setParameterList
in interfaceMutationQuery
- Specified by:
setParameterList
in interfaceSelectionQuery<R>
- Parameters:
parameter
- the parameter mementoarguments
- a collection of arguments- Returns:
this
, for method chaining
-
setParameterList
<P> Query<R> setParameterList(QueryParameter<P> parameter, Collection<? extends P> arguments, Class<P> javaType) Bind multiple arguments to the query parameter represented by the givenQueryParameter
using the given Class reference to attempt to determine theBindableType
to use. If unable to determine an appropriateBindableType
,setParameterList(String, Collection)
is used.- Specified by:
setParameterList
in interfaceCommonQueryContract
- Specified by:
setParameterList
in interfaceMutationQuery
- Specified by:
setParameterList
in interfaceSelectionQuery<R>
- Returns:
this
, for method chaining- See Also:
- API Note:
- This is used for binding a list of values to an expression such
as
entity.field in (:values)
.
-
setParameterList
<P> Query<R> setParameterList(QueryParameter<P> parameter, Collection<? extends P> arguments, BindableType<P> type) Bind multiple arguments to the query parameter represented by the givenQueryParameter
, inferring theBindableType
.The "type mapping" for the binding is inferred from the type of the first collection element.
- Specified by:
setParameterList
in interfaceCommonQueryContract
- Specified by:
setParameterList
in interfaceMutationQuery
- Specified by:
setParameterList
in interfaceSelectionQuery<R>
- Returns:
this
, for method chaining- API Note:
- This is used for binding a list of values to an expression such
as
entity.field in (:values)
.
-
setParameterList
Bind multiple arguments to the query parameter represented by the givenQueryParameter
.The type of the parameter is inferred between the context in which it occurs, the type associated with the QueryParameter and the type of the first given argument.
- Specified by:
setParameterList
in interfaceCommonQueryContract
- Specified by:
setParameterList
in interfaceMutationQuery
- Specified by:
setParameterList
in interfaceSelectionQuery<R>
- Parameters:
parameter
- the parameter mementoarguments
- a collection of arguments- Returns:
this
, for method chaining
-
setParameterList
Bind multiple arguments to the query parameter represented by the givenQueryParameter
using the givenClass
reference to attempt to determine theBindableType
to use. If unable to determine an appropriateBindableType
,setParameterList(String, Collection)
is used.- Specified by:
setParameterList
in interfaceCommonQueryContract
- Specified by:
setParameterList
in interfaceMutationQuery
- Specified by:
setParameterList
in interfaceSelectionQuery<R>
- Returns:
this
, for method chaining- See Also:
- API Note:
- This is used for binding a list of values to an expression
such as
entity.field in (:values)
.
-
setParameterList
Bind multiple arguments to the query parameter represented by the givenQueryParameter
, inferring theBindableType
.The "type mapping" for the binding is inferred from the type of the first collection element
- Specified by:
setParameterList
in interfaceCommonQueryContract
- Specified by:
setParameterList
in interfaceMutationQuery
- Specified by:
setParameterList
in interfaceSelectionQuery<R>
- Returns:
this
, for method chaining- API Note:
- This is used for binding a list of values to an expression
such as
entity.field in (:values)
.
-
setProperties
Bind the property values of the given bean to named parameters of the query, matching property names with parameter names and mapping property types to Hibernate types using heuristics.- Specified by:
setProperties
in interfaceCommonQueryContract
- Specified by:
setProperties
in interfaceMutationQuery
- Specified by:
setProperties
in interfaceSelectionQuery<R>
- Parameters:
bean
- any JavaBean or POJO- Returns:
this
, for method chaining
-
setProperties
Bind the values of the givenMap
for each named parameters of the query, matching key names with parameter names and mapping value types to Hibernate types using heuristics.- Specified by:
setProperties
in interfaceCommonQueryContract
- Specified by:
setProperties
in interfaceMutationQuery
- Specified by:
setProperties
in interfaceSelectionQuery<R>
- Parameters:
bean
- aMap
of names to arguments- Returns:
this
, for method chaining
-
setHibernateFlushMode
Deprecated.Description copied from interface:CommonQueryContract
Set the currentFlushMode
in effect for this query.- Specified by:
setHibernateFlushMode
in interfaceCommonQueryContract
- Specified by:
setHibernateFlushMode
in interfaceMutationQuery
- Specified by:
setHibernateFlushMode
in interfaceSelectionQuery<R>
- See Also:
-
setQueryFlushMode
Description copied from interface:CommonQueryContract
Set theQueryFlushMode
to use for this query.- Specified by:
setQueryFlushMode
in interfaceCommonQueryContract
- Specified by:
setQueryFlushMode
in interfaceMutationQuery
- Specified by:
setQueryFlushMode
in interfaceSelectionQuery<R>
- See Also:
-
setCacheable
Description copied from interface:SelectionQuery
Enable/disable second level query (result) caching for this query.- Specified by:
setCacheable
in interfaceSelectionQuery<R>
- See Also:
-
setCacheRegion
Description copied from interface:SelectionQuery
Set the name of the cache region where query results should be cached (assumingSelectionQuery.isCacheable()
).null
indicates to use the default region.- Specified by:
setCacheRegion
in interfaceSelectionQuery<R>
- See Also:
-
setCacheMode
Description copied from interface:SelectionQuery
Set the currentCacheMode
in effect for this query.Set it to
null
to indicate that theCacheMode
of thesession
should be used.- Specified by:
setCacheMode
in interfaceSelectionQuery<R>
- See Also:
-
setCacheStoreMode
- Specified by:
setCacheStoreMode
in interfaceQuery
- Specified by:
setCacheStoreMode
in interfaceSelectionQuery<R>
- Specified by:
setCacheStoreMode
in interfaceTypedQuery<R>
- See Also:
-
setCacheRetrieveMode
- Specified by:
setCacheRetrieveMode
in interfaceQuery
- Specified by:
setCacheRetrieveMode
in interfaceSelectionQuery<R>
- Specified by:
setCacheRetrieveMode
in interfaceTypedQuery<R>
- See Also:
-
setTimeout
Description copied from interface:CommonQueryContract
Set the query timeout in seconds.Any value set here is eventually passed directly along to the JDBC statement, which expressly disallows negative values. So negative values should be avoided as a general rule.
A value of zero indicates no timeout.
- Specified by:
setTimeout
in interfaceCommonQueryContract
- Specified by:
setTimeout
in interfaceMutationQuery
- Specified by:
setTimeout
in interfaceSelectionQuery<R>
- Parameters:
timeout
- the timeout in seconds- Returns:
this
, for method chaining- See Also:
-
setFetchSize
Description copied from interface:SelectionQuery
Sets a JDBC fetch size hint for the query.- Specified by:
setFetchSize
in interfaceSelectionQuery<R>
- Parameters:
fetchSize
- the fetch size hint- Returns:
this
, for method chaining- See Also:
-
setReadOnly
Description copied from interface:SelectionQuery
Set the read-only/modifiable mode for entities and proxies loaded by thisQuery
. This setting overrides the default setting for the persistence context,Session.isDefaultReadOnly()
.To set the default read-only/modifiable setting used for entities and proxies that are loaded into the session, use
Session.setDefaultReadOnly(boolean)
.Read-only entities are not dirty-checked and snapshots of persistent state are not maintained. Read-only entities can be modified, but changes are not persisted.
When a proxy is initialized, the loaded entity will have the same read-only/modifiable setting as the uninitialized proxy has, regardless of the session's current setting.
The read-only/modifiable setting has no impact on entities/proxies returned by the query that existed in the session beforeQuery the query was executed.
- Specified by:
setReadOnly
in interfaceSelectionQuery<R>
- Parameters:
readOnly
-true
indicates that entities and proxies loaded by the query are to be put in read-only mode;false
indicates that entities and proxies loaded by the query will be put in modifiable mode- Returns:
this
, for method chaining
-
setMaxResults
Description copied from interface:SelectionQuery
Set the maximum number of query result rows to return.- Specified by:
setMaxResults
in interfaceQuery
- Specified by:
setMaxResults
in interfaceSelectionQuery<R>
- Specified by:
setMaxResults
in interfaceTypedQuery<R>
- Parameters:
maxResults
- the maximum length of the query result list
-
setFirstResult
Description copied from interface:SelectionQuery
Set the first query result row to return. The very first row of the query result list is considered the zeroth row.- Specified by:
setFirstResult
in interfaceQuery
- Specified by:
setFirstResult
in interfaceSelectionQuery<R>
- Specified by:
setFirstResult
in interfaceTypedQuery<R>
- Parameters:
startPosition
- the position of the first row to return, indexed from zero
-
setPage
Description copied from interface:SelectionQuery
Set the page of results to return.- Specified by:
setPage
in interfaceSelectionQuery<R>
- See Also:
-
setHint
Description copied from interface:CommonQueryContract
Set a hint. The hints understood by Hibernate are enumerated byAvailableHints
.- Specified by:
setHint
in interfaceCommonQueryContract
- Specified by:
setHint
in interfaceMutationQuery
- Specified by:
setHint
in interfaceQuery
- Specified by:
setHint
in interfaceSelectionQuery<R>
- Specified by:
setHint
in interfaceTypedQuery<R>
- See Also:
-
setEntityGraph
Description copied from interface:SelectionQuery
Apply anEntityGraph
to the query.This is an alternative way to specify the associations which should be fetched as part of the initial query.
- Specified by:
setEntityGraph
in interfaceSelectionQuery<R>
-
enableFetchProfile
Description copied from interface:SelectionQuery
Enable thefetch profile
for this query. If the requested fetch profile is already enabled, the call has no effect.This is an alternative way to specify the associations which should be fetched as part of the initial query.
- Specified by:
enableFetchProfile
in interfaceSelectionQuery<R>
- Parameters:
profileName
- the name of the fetch profile to be enabled- See Also:
-
disableFetchProfile
Description copied from interface:SelectionQuery
Disable thefetch profile
with the given name in this session. If the requested fetch profile is not currently enabled, the call has no effect.- Specified by:
disableFetchProfile
in interfaceSelectionQuery<R>
- Parameters:
profileName
- the name of the fetch profile to be disabled- See Also:
-
setFlushMode
Deprecated.Description copied from interface:CommonQueryContract
Set theFlushMode
to use for this query.Setting this to
null
ultimately indicates to use theFlushMode
of the session. UseCommonQueryContract.setHibernateFlushMode(org.hibernate.FlushMode)
passingFlushMode.MANUAL
instead to indicate that no automatic flushing should occur.- Specified by:
setFlushMode
in interfaceCommonQueryContract
- Specified by:
setFlushMode
in interfaceMutationQuery
- Specified by:
setFlushMode
in interfaceQuery
- Specified by:
setFlushMode
in interfaceSelectionQuery<R>
- Specified by:
setFlushMode
in interfaceTypedQuery<R>
- See Also:
-
setLockMode
Description copied from interface:SelectionQuery
Specify the rootLockModeType
for the query- Specified by:
setLockMode
in interfaceQuery
- Specified by:
setLockMode
in interfaceSelectionQuery<R>
- Specified by:
setLockMode
in interfaceTypedQuery<R>
- See Also:
-
setOrder
Description copied from interface:SelectionQuery
If the result type of this query is an entity class, add one or more rules for ordering the query results.- Specified by:
setOrder
in interfaceSelectionQuery<R>
- Parameters:
orderList
- one or more instances ofOrder
- See Also:
-
setOrder
Description copied from interface:SelectionQuery
If the result type of this query is an entity class, add a rule for ordering the query results.- Specified by:
setOrder
in interfaceSelectionQuery<R>
- Parameters:
order
- an instance ofOrder
- See Also:
-
addRestriction
Description copied from interface:SelectionQuery
If the result type of this query is an entity class, add a rule for restricting the query results.- Specified by:
addRestriction
in interfaceSelectionQuery<R>
- Parameters:
restriction
- an instance ofRestriction
- See Also:
-
setResultTransformer
@Deprecated(since="5.2") default <T> Query<T> setResultTransformer(ResultTransformer<T> transformer)
-
setEntityGraph(EntityGraph, GraphSemantic)
which is more type safe