Interface QueryProducer
-
- All Known Subinterfaces:
EventSource
,QueryProducerImplementor
,Session
,SessionImplementor
,SharedSessionContract
,SharedSessionContractImplementor
,StatelessSession
- All Known Implementing Classes:
AbstractDelegateSessionImplementor
,AbstractSharedSessionContract
,SessionDelegatorBaseImpl
,SessionImpl
,SessionLazyDelegator
,SharedSessionDelegatorBaseImpl
,StatelessSessionImpl
,ToOneDelegateSessionImplementor
public interface QueryProducer
Contract for things that can produce instances ofQuery
andNativeQuery
. Implementors includeSession
andStatelessSession
. Many operations of the interface have the same or very similar signatures to operations ofEntityManager
. They are declared here to allow reuse byStatelessSession
.Unlike the corresponding operations of
EntityManager
, operations for creating untyped instances ofQuery
are all marked as deprecated. Clients must migrate to the use of the equivalent operations which accept aClass
and return a typedQuery
.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Deprecated Methods Modifier and Type Method Description MutationQuery
createMutationQuery(CriteriaDelete deleteQuery)
Create aMutationQuery
from the given delete criteria treeMutationQuery
createMutationQuery(CriteriaUpdate updateQuery)
Create aMutationQuery
from the given update criteria treeMutationQuery
createMutationQuery(String hqlString)
Create aMutationQuery
reference for the given HQL insert, update, or delete statement.MutationQuery
createMutationQuery(JpaCriteriaInsert insertSelect)
Create aMutationQuery
from the given insert criteria treeMutationQuery
createMutationQuery(JpaCriteriaInsertSelect insertSelect)
Create aMutationQuery
from the given insert-select criteria treeMutationQuery
createNamedMutationQuery(String name)
Create aMutationQuery
instance for the given named insert, update, or delete HQL query.Query
createNamedQuery(String name)
Deprecated.<R> Query<R>
createNamedQuery(String name, Class<R> resultClass)
Create a typedQuery
instance for the given named query.SelectionQuery<?>
createNamedSelectionQuery(String name)
Deprecated.<R> SelectionQuery<R>
createNamedSelectionQuery(String name, Class<R> resultType)
Create aSelectionQuery
instance for the namedNamedQuery
with the given result type.MutationQuery
createNativeMutationQuery(String sqlString)
Create aNativeQuery
instance for the given native SQL statement.NativeQuery
createNativeQuery(String sqlString)
Deprecated.<R> NativeQuery<R>
createNativeQuery(String sqlString, Class<R> resultClass)
Create aNativeQuery
instance for the given native SQL query using an implicit mapping to the specified Java type.<R> NativeQuery<R>
createNativeQuery(String sqlString, Class<R> resultClass, String tableAlias)
Create aNativeQuery
instance for the given native SQL query using an implicit mapping to the specified Java entity type.NativeQuery
createNativeQuery(String sqlString, String resultSetMappingName)
Deprecated.<R> NativeQuery<R>
createNativeQuery(String sqlString, String resultSetMappingName, Class<R> resultClass)
Create aNativeQuery
instance for the given native SQL query using an explicit mapping to the specified Java type.Query
createQuery(CriteriaDelete deleteQuery)
Deprecated.<R> Query<R>
createQuery(CriteriaQuery<R> criteriaQuery)
Create aQuery
for the given JPACriteriaQuery
.Query
createQuery(CriteriaUpdate updateQuery)
Deprecated.Query
createQuery(String queryString)
Deprecated.usecreateQuery(String, Class)
,createSelectionQuery(String, Class)
, orcreateMutationQuery(String)
depending on intention<R> Query<R>
createQuery(String queryString, Class<R> resultClass)
Create a typedQuery
instance for the given HQL query string and given query result type.<R> SelectionQuery<R>
createSelectionQuery(CriteriaQuery<R> criteria)
Create aSelectionQuery
reference for the givenCriteriaQuery
.SelectionQuery<?>
createSelectionQuery(String hqlString)
Deprecated.<R> SelectionQuery<R>
createSelectionQuery(String hqlString, Class<R> resultType)
Create aSelectionQuery
instance for the given HQL query string and given query result type.NativeQuery
getNamedNativeQuery(String name)
Deprecated.NativeQuery
getNamedNativeQuery(String name, String resultSetMapping)
Deprecated.Query
getNamedQuery(String queryName)
Deprecated.
-
-
-
Method Detail
-
createQuery
@Deprecated(since="6.0") Query createQuery(String queryString)
Deprecated.usecreateQuery(String, Class)
,createSelectionQuery(String, Class)
, orcreateMutationQuery(String)
depending on intentionCreate aQuery
instance for the given HQL query, or HQL insert, update, or delete statement.If a query has no explicit
select
list, the select list is inferred:- if there is exactly one root entity in the
from
clause, then that root entity is the only element of the select list, or - otherwise, if there are multiple root entities in the
from
clause, then the select list contains every root entity and every non-fetch
joined entity.
- Parameters:
queryString
- The HQL query- Returns:
- The
Query
instance for manipulation and execution - See Also:
EntityManager.createQuery(String)
- API Note:
- Returns a raw
Query
type instead of a wildcard typeQuery<?>
, to match the signature of the JPA methodEntityManager.createQuery(String)
. - Implementation Note:
- This method interprets some queries with an implicit
select
list in a quite unintuitive way. In some future release, this method will be modified to throw an exception when passed a query with a missingselect
. For now, usecreateQuery(String, Class)
to avoid ambiguity.
- if there is exactly one root entity in the
-
createQuery
<R> Query<R> createQuery(String queryString, Class<R> resultClass)
Create a typedQuery
instance for the given HQL query string and given query result type.- If the query has a single item in the
select
list, then the select item must be assignable to the given result type. - Otherwise, if there are multiple select items, then the
select items will be packaged into an instance of the
result type. The result type must have an appropriate
constructor with parameter types matching the select items,
or it must be one of the types
Object[]
,List
,Map
, orTuple
.
If a query has no explicit
select
list, the select list is inferred from the given query result type:- if the result type is an entity type, the query must have
exactly one root entity in the
from
clause, it must be assignable to the result type, and the inferred select list will contain just that entity, or - otherwise, the select list contains every root entity and
every non-
fetch
joined entity, and each query result will be packaged into an instance of the result type, just as specified above.
The returned
Query
may be executed by callingQuery.getResultList()
orQuery.getSingleResult()
.- Parameters:
queryString
- The HQL queryresultClass
- The type of the query result- Returns:
- The
Query
instance for manipulation and execution - See Also:
EntityManager.createQuery(String,Class)
- If the query has a single item in the
-
createQuery
<R> Query<R> createQuery(CriteriaQuery<R> criteriaQuery)
Create aQuery
for the given JPACriteriaQuery
.
-
createQuery
@Deprecated(since="6.0") Query createQuery(CriteriaUpdate updateQuery)
Deprecated.Create aMutationQuery
for the given JPACriteriaUpdate
-
createQuery
@Deprecated(since="6.0") Query createQuery(CriteriaDelete deleteQuery)
Deprecated.Create aMutationQuery
for the given JPACriteriaDelete
-
createNativeQuery
@Deprecated(since="6.0") NativeQuery createNativeQuery(String sqlString)
Deprecated.Create aNativeQuery
instance for the given native SQL query.- Parameters:
sqlString
- a native SQL query string- Returns:
- The
NativeQuery
instance for manipulation and execution - See Also:
EntityManager.createNativeQuery(String)
-
createNativeQuery
<R> NativeQuery<R> createNativeQuery(String sqlString, Class<R> resultClass)
Create aNativeQuery
instance for the given native SQL query using an implicit mapping to the specified Java type.- If the given class is an entity class, this method is equivalent
to
createNativeQuery(sqlString).addEntity(resultClass)
. - If the given class has a registered
JavaType
, then the query must return a result set with a single column whoseJdbcType
is compatible with thatJavaType
. - Otherwise, the select items will be packaged into an instance of
the result type. The result type must have an appropriate
constructor with parameter types matching the select items, or it
must be one of the types
Object[]
,List
,Map
, orTuple
.
- Parameters:
sqlString
- The native (SQL) query stringresultClass
- The Java type to map results to- Returns:
- The
NativeQuery
instance for manipulation and execution - See Also:
EntityManager.createNativeQuery(String,Class)
- If the given class is an entity class, this method is equivalent
to
-
createNativeQuery
<R> NativeQuery<R> createNativeQuery(String sqlString, Class<R> resultClass, String tableAlias)
Create aNativeQuery
instance for the given native SQL query using an implicit mapping to the specified Java entity type.The given class must be an entity class. This method is equivalent to
createNativeQuery(sqlString).addEntity(tableAlias, resultClass)
.- Parameters:
sqlString
- Native (SQL) query stringresultClass
- The Java entity class to map results totableAlias
- The table alias for columns in the result set- Returns:
- The
NativeQuery
instance for manipulation and execution - See Also:
EntityManager.createNativeQuery(String,Class)
-
createNativeQuery
@Deprecated(since="6.0") NativeQuery createNativeQuery(String sqlString, String resultSetMappingName)
Deprecated.Create aNativeQuery
instance for the given native SQL query using an explicit mapping to the specified Java type.The given result set mapping name must identify a mapping defined by a
SqlResultSetMapping
annotation.- Parameters:
sqlString
- The native (SQL) query stringresultSetMappingName
- The explicit result mapping name- Returns:
- The
NativeQuery
instance for manipulation and execution - See Also:
EntityManager.createNativeQuery(String,Class)
,SqlResultSetMapping
-
createNativeQuery
<R> NativeQuery<R> createNativeQuery(String sqlString, String resultSetMappingName, Class<R> resultClass)
Create aNativeQuery
instance for the given native SQL query using an explicit mapping to the specified Java type.The given result set mapping name must identify a mapping defined by a
SqlResultSetMapping
annotation.- Parameters:
sqlString
- The native (SQL) query stringresultSetMappingName
- The explicit result mapping name- Returns:
- The
NativeQuery
instance for manipulation and execution - See Also:
EntityManager.createNativeQuery(String,Class)
,SqlResultSetMapping
-
createSelectionQuery
@Deprecated(since="6.3") SelectionQuery<?> createSelectionQuery(String hqlString)
Deprecated.Create aSelectionQuery
reference for the given HQLselect
statement.If the statement has no explicit
select
list, the select list is inferred:- if there is exactly one root entity in the
from
clause, then that root entity is the only element of the select list, or - otherwise, if there are multiple root entities in the
from
clause, then the select list contains every root entity and every non-fetch
joined entity.
- Throws:
IllegalSelectQueryException
- if the given HQL query is an insert, update or delete query- Implementation Note:
- This method interprets some queries with an implicit
select
list in a quite unintuitive way. In some future release, this method will be modified to throw an exception when passed a query with a missingselect
. For now, usecreateSelectionQuery(String, Class)
to avoid ambiguity.
- if there is exactly one root entity in the
-
createSelectionQuery
<R> SelectionQuery<R> createSelectionQuery(String hqlString, Class<R> resultType)
Create aSelectionQuery
instance for the given HQL query string and given query result type.- If the query has a single item in the
select
list, then the select item must be assignable to the given result type. - Otherwise, if there are multiple select items, then the
select items will be packaged into an instance of the
result type. The result type must have an appropriate
constructor with parameter types matching the select items,
or it must be one of the types
Object[]
,List
,Map
, orTuple
.
If a query has no explicit
select
list, the select list is inferred from the given query result type:- if the result type is an entity type, the query must have
exactly one root entity in the
from
clause, it must be assignable to the result type, and the inferred select list will contain just that entity, or - otherwise, the select list contains every root entity and
every non-
fetch
joined entity, and each query result will be packaged into an instance of the result type, just as specified above.
The returned
Query
may be executed by callingQuery.getResultList()
orQuery.getSingleResult()
.- Parameters:
hqlString
- The HQL query as a stringresultType
- TheClass
object representing the query result type- Throws:
IllegalSelectQueryException
- if the given HQL query is an insert, update or delete query- See Also:
EntityManager.createQuery(String)
- If the query has a single item in the
-
createSelectionQuery
<R> SelectionQuery<R> createSelectionQuery(CriteriaQuery<R> criteria)
Create aSelectionQuery
reference for the givenCriteriaQuery
.- See Also:
EntityManager.createQuery(CriteriaQuery)
-
createMutationQuery
MutationQuery createMutationQuery(String hqlString)
Create aMutationQuery
reference for the given HQL insert, update, or delete statement.- Throws:
IllegalMutationQueryException
- if the given HQL query is a select query
-
createMutationQuery
MutationQuery createMutationQuery(CriteriaUpdate updateQuery)
Create aMutationQuery
from the given update criteria tree
-
createMutationQuery
MutationQuery createMutationQuery(CriteriaDelete deleteQuery)
Create aMutationQuery
from the given delete criteria tree
-
createMutationQuery
MutationQuery createMutationQuery(JpaCriteriaInsertSelect insertSelect)
Create aMutationQuery
from the given insert-select criteria tree
-
createMutationQuery
MutationQuery createMutationQuery(JpaCriteriaInsert insertSelect)
Create aMutationQuery
from the given insert criteria tree
-
createNativeMutationQuery
MutationQuery createNativeMutationQuery(String sqlString)
Create aNativeQuery
instance for the given native SQL statement.- Parameters:
sqlString
- a native SQL statement string- Returns:
- The NativeQuery instance for manipulation and execution
-
createNamedQuery
@Deprecated(since="6.0") Query createNamedQuery(String name)
Deprecated.Create a typedQuery
instance for the given named query. The named query might be defined in HQL or in native SQL.- Parameters:
name
- the name of a predefined named query- Returns:
- The
Query
instance for manipulation and execution - Throws:
IllegalArgumentException
- if a query has not been defined with the given name or if the query string is found to be invalid- See Also:
EntityManager.createNamedQuery(String)
-
createNamedQuery
<R> Query<R> createNamedQuery(String name, Class<R> resultClass)
Create a typedQuery
instance for the given named query. The named query might be defined in HQL or in native SQL.- Parameters:
name
- the name of a query defined in metadataresultClass
- the type of the query result- Returns:
- The
Query
instance for manipulation and execution - Throws:
IllegalArgumentException
- if a query has not been defined with the given name or if the query string is found to be invalid or if the query result is found to not be assignable to the specified type- See Also:
EntityManager.createNamedQuery(String,Class)
-
createNamedSelectionQuery
@Deprecated(since="6.3") SelectionQuery<?> createNamedSelectionQuery(String name)
Deprecated.Create aSelectionQuery
instance for the namedNamedQuery
.- Throws:
IllegalSelectQueryException
- if the given HQL query is not a select queryUnknownNamedQueryException
- if no query has been defined with the given name- Implementation Note:
- This method interprets some queries with an implicit
select
list in a quite unintuitive way. In some future release, this method will be modified to throw an exception when passed a query with a missingselect
. For now, usecreateNamedSelectionQuery(String, Class)
to avoid ambiguity.
-
createNamedSelectionQuery
<R> SelectionQuery<R> createNamedSelectionQuery(String name, Class<R> resultType)
Create aSelectionQuery
instance for the namedNamedQuery
with the given result type.- Throws:
IllegalSelectQueryException
- if the given HQL query is not a select queryUnknownNamedQueryException
- if no query has been defined with the given name
-
createNamedMutationQuery
MutationQuery createNamedMutationQuery(String name)
Create aMutationQuery
instance for the given named insert, update, or delete HQL query. The named query might be defined as HQL) or native-SQL.- Throws:
IllegalMutationQueryException
- if the given HQL query is a select queryUnknownNamedQueryException
- if no query has been defined with the given name
-
getNamedQuery
@Deprecated(since="6.0") Query getNamedQuery(String queryName)
Deprecated.Create aQuery
instance for the named query.- Parameters:
queryName
- the name of a predefined named query- Returns:
- The
Query
instance for manipulation and execution - Throws:
IllegalArgumentException
- if a query has not been defined with the given name or if the query string is found to be invalid
-
getNamedNativeQuery
@Deprecated(since="6.0") NativeQuery getNamedNativeQuery(String name)
Deprecated.Get aNativeQuery
instance for a named native SQL query- Parameters:
name
- The name of the predefined query- Returns:
- The
NativeQuery
instance for manipulation and execution
-
getNamedNativeQuery
@Deprecated(since="6.0") NativeQuery getNamedNativeQuery(String name, String resultSetMapping)
Deprecated.Get aNativeQuery
instance for a named native SQL query- Parameters:
name
- The name of the predefined query- Returns:
- The
NativeQuery
instance for manipulation and execution
-
-