com.sun.enterprise.container.common.impl
Class QueryWrapper
java.lang.Object
com.sun.enterprise.container.common.impl.QueryWrapper
- All Implemented Interfaces:
- javax.persistence.Query
- Direct Known Subclasses:
- TypedQueryWrapper
public class QueryWrapper
- extends Object
- implements javax.persistence.Query
Wrapper class for javax.persistence.Query objects returned from
non-transactional access of a container-managed transactional
EntityManager. Proxying the Query object prevents the
EntityManagerWrapper from having to keep a physical EntityManager
open when returning Query objects for non-transactional access.
This results in a cleaner implementation of the non-transactional
EntityManager behavior and minimizes the amount of time
non-transactional EntityManager objects are left open. It is likely
that physical EntityManager objects will have heavy-weight resources
such as DB connections open even after clear() is called. This is
one of the main reasons to minimize the number of open non-transactional
EntityManager objects held internally within injected/looked-up
container-managed EntityManagers.
The EntityManager and Query delegate objects are provided at
QueryWrapper creation time. These objects must exist in order
for the EntityManagerWrapper to provide the correct exception
behavior to the application when a Query is requested.
Likewise, the actual delegates must be available
to handle the majority of the Query API operations such as
performing validation on the various setter parameters.
The Query/EntityManager delegates
are closed/discarded after each call to getSingleResult/getResultList.
A new Query/EntityManager delegate pair is then created lazily
the next time the Query delegate is needed. The QueryWrapper
maintains a list of all setter operations invoked by the application.
These are re-applied in the same order whenever a new Query delegate
is created to ensure that the state of the Query delegate object matches
what it would have been if there wasn't any QueryWrapper.
|
Constructor Summary |
protected |
QueryWrapper(javax.persistence.EntityManagerFactory emf,
Map emProperties,
javax.persistence.EntityManager emDelegate,
javax.persistence.Query qDelegate,
QueryWrapper.QueryType type,
String query,
Class resultClass,
String resultSetMapping)
|
|
Method Summary |
static javax.persistence.Query |
createNamedQueryWrapper(javax.persistence.EntityManagerFactory emf,
Map emProperties,
javax.persistence.EntityManager emDelegate,
javax.persistence.Query queryDelegate,
String name)
|
static javax.persistence.Query |
createNativeQueryWrapper(javax.persistence.EntityManagerFactory emf,
Map emProperties,
javax.persistence.EntityManager emDelegate,
javax.persistence.Query queryDelegate,
String sqlString)
|
static javax.persistence.Query |
createNativeQueryWrapper(javax.persistence.EntityManagerFactory emf,
Map emProperties,
javax.persistence.EntityManager emDelegate,
javax.persistence.Query queryDelegate,
String sqlString,
Class resultClass)
|
static javax.persistence.Query |
createNativeQueryWrapper(javax.persistence.EntityManagerFactory emf,
Map emProperties,
javax.persistence.EntityManager emDelegate,
javax.persistence.Query queryDelegate,
String sqlString,
String resultSetMapping)
|
protected javax.persistence.Query |
createQueryDelegate(QueryWrapper.QueryType queryType,
javax.persistence.EntityManager entityManager,
String queryString)
|
static javax.persistence.Query |
createQueryWrapper(javax.persistence.EntityManagerFactory emf,
Map emProperties,
javax.persistence.EntityManager emDelegate,
javax.persistence.Query queryDelegate,
String ejbqlString)
|
int |
executeUpdate()
|
int |
getFirstResult()
|
javax.persistence.FlushModeType |
getFlushMode()
|
Map<String,Object> |
getHints()
|
javax.persistence.LockModeType |
getLockMode()
|
int |
getMaxResults()
|
javax.persistence.Parameter<?> |
getParameter(int position)
|
<T> javax.persistence.Parameter<T> |
|
getParameter(int position,
Class<T> type)
|
javax.persistence.Parameter<?> |
getParameter(String name)
|
<T> javax.persistence.Parameter<T> |
|
getParameter(String name,
Class<T> type)
|
Set<javax.persistence.Parameter<?>> |
getParameters()
|
Object |
getParameterValue(int position)
|
|
getParameterValue(javax.persistence.Parameter<T> param)
|
Object |
getParameterValue(String name)
|
protected javax.persistence.Query |
getQueryDelegate()
|
List |
getResultList()
|
Object |
getSingleResult()
|
boolean |
isBound(javax.persistence.Parameter<?> param)
|
javax.persistence.Query |
setFirstResult(int startPosition)
|
javax.persistence.Query |
setFlushMode(javax.persistence.FlushModeType flushMode)
|
javax.persistence.Query |
setHint(String hintName,
Object value)
|
javax.persistence.Query |
setLockMode(javax.persistence.LockModeType lockModeType)
|
javax.persistence.Query |
setMaxResults(int maxResults)
|
javax.persistence.Query |
setParameter(int position,
Calendar value,
javax.persistence.TemporalType temporalType)
|
javax.persistence.Query |
setParameter(int position,
Date value,
javax.persistence.TemporalType temporalType)
|
javax.persistence.Query |
setParameter(int position,
Object value)
|
javax.persistence.Query |
setParameter(javax.persistence.Parameter<Calendar> param,
Calendar value,
javax.persistence.TemporalType temporalType)
|
javax.persistence.Query |
setParameter(javax.persistence.Parameter<Date> param,
Date value,
javax.persistence.TemporalType temporalType)
|
<T> javax.persistence.Query |
|
setParameter(javax.persistence.Parameter<T> param,
T value)
|
javax.persistence.Query |
setParameter(String name,
Calendar value,
javax.persistence.TemporalType temporalType)
|
javax.persistence.Query |
setParameter(String name,
Date value,
javax.persistence.TemporalType temporalType)
|
javax.persistence.Query |
setParameter(String name,
Object value)
|
|
unwrap(Class<T> tClass)
|
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
QueryWrapper
protected QueryWrapper(javax.persistence.EntityManagerFactory emf,
Map emProperties,
javax.persistence.EntityManager emDelegate,
javax.persistence.Query qDelegate,
QueryWrapper.QueryType type,
String query,
Class resultClass,
String resultSetMapping)
createQueryWrapper
public static javax.persistence.Query createQueryWrapper(javax.persistence.EntityManagerFactory emf,
Map emProperties,
javax.persistence.EntityManager emDelegate,
javax.persistence.Query queryDelegate,
String ejbqlString)
createNamedQueryWrapper
public static javax.persistence.Query createNamedQueryWrapper(javax.persistence.EntityManagerFactory emf,
Map emProperties,
javax.persistence.EntityManager emDelegate,
javax.persistence.Query queryDelegate,
String name)
createNativeQueryWrapper
public static javax.persistence.Query createNativeQueryWrapper(javax.persistence.EntityManagerFactory emf,
Map emProperties,
javax.persistence.EntityManager emDelegate,
javax.persistence.Query queryDelegate,
String sqlString)
createNativeQueryWrapper
public static javax.persistence.Query createNativeQueryWrapper(javax.persistence.EntityManagerFactory emf,
Map emProperties,
javax.persistence.EntityManager emDelegate,
javax.persistence.Query queryDelegate,
String sqlString,
Class resultClass)
createNativeQueryWrapper
public static javax.persistence.Query createNativeQueryWrapper(javax.persistence.EntityManagerFactory emf,
Map emProperties,
javax.persistence.EntityManager emDelegate,
javax.persistence.Query queryDelegate,
String sqlString,
String resultSetMapping)
getResultList
public List getResultList()
- Specified by:
getResultList in interface javax.persistence.Query
getSingleResult
public Object getSingleResult()
- Specified by:
getSingleResult in interface javax.persistence.Query
executeUpdate
public int executeUpdate()
- Specified by:
executeUpdate in interface javax.persistence.Query
setMaxResults
public javax.persistence.Query setMaxResults(int maxResults)
- Specified by:
setMaxResults in interface javax.persistence.Query
getMaxResults
public int getMaxResults()
- Specified by:
getMaxResults in interface javax.persistence.Query
setFirstResult
public javax.persistence.Query setFirstResult(int startPosition)
- Specified by:
setFirstResult in interface javax.persistence.Query
getFirstResult
public int getFirstResult()
- Specified by:
getFirstResult in interface javax.persistence.Query
setHint
public javax.persistence.Query setHint(String hintName,
Object value)
- Specified by:
setHint in interface javax.persistence.Query
getHints
public Map<String,Object> getHints()
- Specified by:
getHints in interface javax.persistence.Query
setParameter
public <T> javax.persistence.Query setParameter(javax.persistence.Parameter<T> param,
T value)
- Specified by:
setParameter in interface javax.persistence.Query
setParameter
public javax.persistence.Query setParameter(javax.persistence.Parameter<Date> param,
Date value,
javax.persistence.TemporalType temporalType)
- Specified by:
setParameter in interface javax.persistence.Query
setParameter
public javax.persistence.Query setParameter(javax.persistence.Parameter<Calendar> param,
Calendar value,
javax.persistence.TemporalType temporalType)
- Specified by:
setParameter in interface javax.persistence.Query
setParameter
public javax.persistence.Query setParameter(String name,
Object value)
- Specified by:
setParameter in interface javax.persistence.Query
setParameter
public javax.persistence.Query setParameter(String name,
Date value,
javax.persistence.TemporalType temporalType)
- Specified by:
setParameter in interface javax.persistence.Query
setParameter
public javax.persistence.Query setParameter(String name,
Calendar value,
javax.persistence.TemporalType temporalType)
- Specified by:
setParameter in interface javax.persistence.Query
setParameter
public javax.persistence.Query setParameter(int position,
Object value)
- Specified by:
setParameter in interface javax.persistence.Query
setParameter
public javax.persistence.Query setParameter(int position,
Date value,
javax.persistence.TemporalType temporalType)
- Specified by:
setParameter in interface javax.persistence.Query
setParameter
public javax.persistence.Query setParameter(int position,
Calendar value,
javax.persistence.TemporalType temporalType)
- Specified by:
setParameter in interface javax.persistence.Query
getParameters
public Set<javax.persistence.Parameter<?>> getParameters()
- Specified by:
getParameters in interface javax.persistence.Query
getParameter
public javax.persistence.Parameter<?> getParameter(String name)
- Specified by:
getParameter in interface javax.persistence.Query
getParameter
public <T> javax.persistence.Parameter<T> getParameter(String name,
Class<T> type)
- Specified by:
getParameter in interface javax.persistence.Query
getParameter
public javax.persistence.Parameter<?> getParameter(int position)
- Specified by:
getParameter in interface javax.persistence.Query
getParameter
public <T> javax.persistence.Parameter<T> getParameter(int position,
Class<T> type)
- Specified by:
getParameter in interface javax.persistence.Query
isBound
public boolean isBound(javax.persistence.Parameter<?> param)
- Specified by:
isBound in interface javax.persistence.Query
getParameterValue
public <T> T getParameterValue(javax.persistence.Parameter<T> param)
- Specified by:
getParameterValue in interface javax.persistence.Query
getParameterValue
public Object getParameterValue(String name)
- Specified by:
getParameterValue in interface javax.persistence.Query
getParameterValue
public Object getParameterValue(int position)
- Specified by:
getParameterValue in interface javax.persistence.Query
setFlushMode
public javax.persistence.Query setFlushMode(javax.persistence.FlushModeType flushMode)
- Specified by:
setFlushMode in interface javax.persistence.Query
getFlushMode
public javax.persistence.FlushModeType getFlushMode()
- Specified by:
getFlushMode in interface javax.persistence.Query
setLockMode
public javax.persistence.Query setLockMode(javax.persistence.LockModeType lockModeType)
- Specified by:
setLockMode in interface javax.persistence.Query
getLockMode
public javax.persistence.LockModeType getLockMode()
- Specified by:
getLockMode in interface javax.persistence.Query
unwrap
public <T> T unwrap(Class<T> tClass)
- Specified by:
unwrap in interface javax.persistence.Query
getQueryDelegate
protected javax.persistence.Query getQueryDelegate()
createQueryDelegate
protected javax.persistence.Query createQueryDelegate(QueryWrapper.QueryType queryType,
javax.persistence.EntityManager entityManager,
String queryString)
Copyright © 2012 GlassFish Community. All Rights Reserved.