|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.springframework.orm.hibernate.HibernateAccessor org.springframework.orm.hibernate.HibernateTemplate
Helper class that simplifies Hibernate data access code, and converts
checked HibernateExceptions into unchecked DataAccessExceptions,
following the org.springframework.dao
exception hierarchy.
Uses the same SQLExceptionTranslator mechanism as JdbcTemplate.
Typically used to implement data access or business logic services that
use Hibernate within their implementation but are Hibernate-agnostic in their
interface. The latter or code calling the latter only have to deal with
domain objects, query objects, and org.springframework.dao
exceptions.
The central method is "execute", supporting Hibernate code implementing the HibernateCallback interface. It provides Hibernate Session handling such that neither the HibernateCallback implementation nor the calling code needs to explicitly care about retrieving/closing Hibernate Sessions, or handling Session lifecycle exceptions. For typical single step actions, there are various convenience methods (find, load, saveOrUpdate, delete).
Can be used within a service implementation via direct instantiation with a SessionFactory reference, or get prepared in an application context and given to services as bean reference. Note: The SessionFactory should always be configured as bean in the application context, in the first case given to the service directly, in the second case to the prepared template.
This class can be considered a programmatic alternative to HibernateInterceptor. The major advantage is its straightforwardness, the major disadvantage that no checked application exceptions can get thrown from within data access code. Such checks and the actual throwing of such exceptions can often be deferred to after callback execution, though.
Note that even if HibernateTransactionManager is used for transaction demarcation in higher-level services, all those services above the data access layer don't need need to be Hibernate-aware. Setting such a special PlatformTransactionManager is a configuration issue: For example, switching to JTA is just a matter of Spring configuration (use JtaTransactionManager instead) that does not affect application code.
LocalSessionFactoryBean is the preferred way of obtaining a reference to a specific Hibernate SessionFactory, at least in a non-EJB environment. Alternatively, use a JndiObjectFactoryBean to fetch a SessionFactory from JNDI (possibly set up via a JCA Connector).
Note that operations that return an Iterator (i.e. iterate
)
are supposed to be used within Spring-driven or JTA-driven transactions
(with HibernateTransactionManager, JtaTransactionManager, or EJB CMT).
Else, the Iterator won't be able to read results from its ResultSet anymore,
as the underlying Hibernate Session will already have been closed.
Lazy loading will also just work with an open Hibernate Session,
either within a transaction or within OpenSessionInViewFilter/Interceptor.
Furthermore, some operations just make sense within transactions,
for example: contains
, evict
, lock
,
flush
, clear
.
Note: Spring's Hibernate support requires Hibernate 2.1 (as of Spring 1.0).
HibernateAccessor.setSessionFactory(net.sf.hibernate.SessionFactory)
,
HibernateAccessor.setJdbcExceptionTranslator(org.springframework.jdbc.support.SQLExceptionTranslator)
,
HibernateCallback
,
Session
,
HibernateInterceptor
,
LocalSessionFactoryBean
,
JndiObjectFactoryBean
,
SQLExceptionTranslator
,
HibernateTransactionManager
,
JtaTransactionManager
,
OpenSessionInViewFilter
,
OpenSessionInViewInterceptor
Field Summary |
Fields inherited from class org.springframework.orm.hibernate.HibernateAccessor |
FLUSH_AUTO, FLUSH_EAGER, FLUSH_NEVER, logger |
Constructor Summary | |
HibernateTemplate()
Create a new HibernateTemplate instance. |
|
HibernateTemplate(SessionFactory sessionFactory)
Create a new HibernateTemplate instance. |
|
HibernateTemplate(SessionFactory sessionFactory,
boolean allowCreate)
Create a new HibernateTemplate instance. |
Method Summary | |
protected void |
applyNamedParameterToQuery(Query queryObject,
String paramName,
Object value,
Type type)
Apply the given name parameter to the given Query object. |
protected void |
checkWriteOperationAllowed(Session session)
Check whether write operations are allowed on the given Session. |
void |
clear()
Remove all objects from the Session cache, and cancel all pending saves, updates and deletes. |
void |
closeIterator(Iterator it)
Close an Iterator created by iterate operations immediately, instead of waiting until the session is closed or disconnected. |
boolean |
contains(Object entity)
Check whether the given object is in the Session cache. |
Criteria |
createCriteria(Session session,
Class entityClass)
Deprecated. Use session.createCriteria instead, which will now
automatically apply the template's query cache settings and the transaction
timeout (through the use of a special Session proxy). |
Query |
createQuery(Session session,
String queryString)
Deprecated. Use session.createQuery instead, which will now
automatically apply the template's query cache settings and the transaction
timeout (through the use of a special Session proxy). |
protected Session |
createSessionProxy(Session session)
Create a close-suppressing proxy for the given Hibernate Session. |
void |
delete(Object entity)
Delete the given persistent instance. |
void |
delete(Object entity,
LockMode lockMode)
Delete the given persistent instance. |
int |
delete(String queryString)
Delete all objects returned by the query. |
int |
delete(String queryString,
Object[] values,
Type[] types)
Delete all objects returned by the query. |
int |
delete(String queryString,
Object value,
Type type)
Delete all objects returned by the query. |
void |
deleteAll(Collection entities)
Delete all given persistent instances. |
void |
evict(Object entity)
Remove the given object from the Session cache. |
Object |
execute(HibernateCallback action)
Execute the action specified by the given action object within a Session. |
Object |
execute(HibernateCallback action,
boolean exposeNativeSession)
Execute the action specified by the given action object within a Session. |
List |
executeFind(HibernateCallback action)
Execute the specified action assuming that the result object is a List. |
List |
find(String queryString)
Execute a query for persistent instances. |
List |
find(String queryString,
Object value)
Execute a query for persistent instances, binding one value to a "?" |
List |
find(String queryString,
Object[] values)
Execute a query for persistent instances, binding a number of values to "?" |
List |
find(String queryString,
Object[] values,
Type[] types)
Execute a query for persistent instances, binding a number of values to "?" |
List |
find(String queryString,
Object value,
Type type)
Execute a query for persistent instances, binding one value to a "?" |
List |
findByNamedParam(String queryString,
String[] paramNames,
Object[] values)
Execute a query for persistent instances, binding a number of values to ":" named parameters in the query string. |
List |
findByNamedParam(String queryString,
String[] paramNames,
Object[] values,
Type[] types)
Execute a query for persistent instances, binding a number of values to ":" named parameters in the query string. |
List |
findByNamedParam(String queryString,
String paramName,
Object value)
Execute a query for persistent instances, binding one value to a ":" named parameter in the query string. |
List |
findByNamedParam(String queryString,
String paramName,
Object value,
Type type)
Execute a query for persistent instances, binding one value to a ":" named parameter in the query string. |
List |
findByNamedQuery(String queryName)
Execute a named query for persistent instances. |
List |
findByNamedQuery(String queryName,
Object value)
Execute a named query for persistent instances, binding one value to a "?" |
List |
findByNamedQuery(String queryName,
Object[] values)
Execute a named query for persistent instances, binding a number of values to "?" |
List |
findByNamedQuery(String queryName,
Object[] values,
Type[] types)
Execute a named query for persistent instances, binding a number of values to "?" |
List |
findByNamedQuery(String queryName,
Object value,
Type type)
Execute a named query for persistent instances, binding one value to a "?" |
List |
findByNamedQuery(String queryName,
String[] paramNames,
Object[] values)
Deprecated. in favor of findByNamedQueryAndNamedParam, to avoid parameter overloading ambiguities |
List |
findByNamedQuery(String queryName,
String[] paramNames,
Object[] values,
Type[] types)
Deprecated. in favor of findByNamedQueryAndNamedParam, to avoid parameter overloading ambiguities |
List |
findByNamedQuery(String queryName,
String paramName,
Object value)
Deprecated. in favor of findByNamedQueryAndNamedParam, to avoid parameter overloading ambiguities |
List |
findByNamedQuery(String queryName,
String paramName,
Object value,
Type type)
Deprecated. in favor of findByNamedQueryAndNamedParam, to avoid parameter overloading ambiguities |
List |
findByNamedQueryAndNamedParam(String queryName,
String[] paramNames,
Object[] values)
Execute a named query for persistent instances, binding a number of values to ":" named parameters in the query string. |
List |
findByNamedQueryAndNamedParam(String queryName,
String[] paramNames,
Object[] values,
Type[] types)
Execute a named query for persistent instances, binding a number of values to ":" named parameters in the query string. |
List |
findByNamedQueryAndNamedParam(String queryName,
String paramName,
Object value)
Execute a named query for persistent instances, binding one value to a ":" named parameter in the query string. |
List |
findByNamedQueryAndNamedParam(String queryName,
String paramName,
Object value,
Type type)
Execute a named query for persistent instances, binding one value to a ":" named parameter in the query string. |
List |
findByNamedQueryAndValueBean(String queryName,
Object valueBean)
Execute a named query for persistent instances, binding the properties of the given bean to ":" named parameters in the query string. |
List |
findByValueBean(String queryString,
Object valueBean)
Execute a query for persistent instances, binding the properties of the given bean to named parameters in the query string. |
void |
flush()
Flush all pending saves, updates and deletes to the database. |
Object |
get(Class entityClass,
Serializable id)
Return the persistent instance of the given entity class with the given identifier, or null if not found. |
Object |
get(Class entityClass,
Serializable id,
LockMode lockMode)
Return the persistent instance of the given entity class with the given identifier, or null if not found. |
Query |
getNamedQuery(Session session,
String queryName)
Deprecated. Use session.getNamedQuery instead, which will now
automatically apply the template's query cache settings and the transaction
timeout (through the use of a special Session proxy). |
String |
getQueryCacheRegion()
Return the name of the cache region for queries executed by this template. |
protected Session |
getSession()
Return a Session for use by this template. |
void |
initialize(Object proxy)
Force initialization of a Hibernate proxy or persistent collection. |
boolean |
isAllowCreate()
Return if a new Session should be created if no thread-bound found. |
boolean |
isAlwaysUseNewSession()
Return whether to always use a new Hibernate Session for this template. |
boolean |
isCacheQueries()
Return whether to cache all queries executed by this template. |
boolean |
isCheckWriteOperations()
Return whether to check that the Hibernate Session is not in read-only mode in case of write operations (save/update/delete). |
boolean |
isExposeNativeSession()
Return whether to expose the native Hibernate Session to HibernateCallback code, or rather a Session proxy. |
Iterator |
iterate(String queryString)
Execute a query for persistent instances. |
Iterator |
iterate(String queryString,
Object value)
Execute a query for persistent instances, binding one value to a "?" |
Iterator |
iterate(String queryString,
Object[] values)
Execute a query for persistent instances, binding a number of values to "?" |
Iterator |
iterate(String queryString,
Object[] values,
Type[] types)
Execute a query for persistent instances, binding a number of values to "?" |
Iterator |
iterate(String queryString,
Object value,
Type type)
Execute a query for persistent instances, binding one value to a "?" |
Object |
load(Class entityClass,
Serializable id)
Return the persistent instance of the given entity class with the given identifier, throwing an exception if not found. |
Object |
load(Class entityClass,
Serializable id,
LockMode lockMode)
Return the persistent instance of the given entity class with the given identifier, throwing an exception if not found. |
void |
load(Object entity,
Serializable id)
Load the persistent instance with the given identifier into the given object, throwing an exception if not found. |
List |
loadAll(Class entityClass)
Return all persistent instances of the given entity class. |
void |
lock(Object entity,
LockMode lockMode)
Obtain the specified lock level upon the given object, implicitly checking whether the corresponding database entry still exists (throwing an OptimisticLockingFailureException if not found). |
protected void |
prepareCriteria(Criteria criteria)
Prepare the given Criteria object, applying cache settings and/or a transaction timeout. |
protected void |
prepareQuery(Query queryObject)
Prepare the given Query object, applying cache settings and/or a transaction timeout. |
void |
refresh(Object entity)
Re-read the state of the given persistent instance. |
void |
refresh(Object entity,
LockMode lockMode)
Re-read the state of the given persistent instance. |
Serializable |
save(Object entity)
Persist the given transient instance. |
void |
save(Object entity,
Serializable id)
Persist the given transient instance with the given identifier. |
void |
saveOrUpdate(Object entity)
Save or update the given persistent instance, according to its id (matching the configured "unsaved-value"?). |
void |
saveOrUpdateAll(Collection entities)
Save or update all given persistent instances, according to its id (matching the configured "unsaved-value"?). |
Object |
saveOrUpdateCopy(Object entity)
Save or update the contents of given persistent object, according to its id (matching the configured "unsaved-value"?). |
void |
setAllowCreate(boolean allowCreate)
Set if a new Session should be created if no thread-bound found. |
void |
setAlwaysUseNewSession(boolean alwaysUseNewSession)
Set whether to always use a new Hibernate Session for this template. |
void |
setCacheQueries(boolean cacheQueries)
Set whether to cache all queries executed by this template. |
void |
setCheckWriteOperations(boolean checkWriteOperations)
Set whether to check that the Hibernate Session is not in read-only mode in case of write operations (save/update/delete). |
void |
setExposeNativeSession(boolean exposeNativeSession)
Set whether to expose the native Hibernate Session to HibernateCallback code. |
void |
setQueryCacheRegion(String queryCacheRegion)
Set the name of the cache region for queries executed by this template. |
void |
update(Object entity)
Update the given persistent instance. |
void |
update(Object entity,
LockMode lockMode)
Update the given persistent instance. |
Methods inherited from class org.springframework.orm.hibernate.HibernateAccessor |
afterPropertiesSet, convertHibernateAccessException, convertJdbcAccessException, flushIfNecessary, getEntityInterceptor, getFlushMode, getJdbcExceptionTranslator, getSessionFactory, setEntityInterceptor, setFlushMode, setFlushModeName, setJdbcExceptionTranslator, setSessionFactory |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public HibernateTemplate()
public HibernateTemplate(SessionFactory sessionFactory)
sessionFactory
- SessionFactory to create Sessionspublic HibernateTemplate(SessionFactory sessionFactory, boolean allowCreate)
sessionFactory
- SessionFactory to create SessionsallowCreate
- if a new Session should be created
if no thread-bound foundMethod Detail |
public void setAllowCreate(boolean allowCreate)
HibernateTemplate is aware of a respective Session bound to the current thread, for example when using HibernateTransactionManager. If allowCreate is true, a new Session will be created if none found. If false, an IllegalStateException will get thrown in this case.
SessionFactoryUtils.getSession(SessionFactory, boolean)
public boolean isAllowCreate()
public void setAlwaysUseNewSession(boolean alwaysUseNewSession)
Within a transaction, a new Hibernate Session used by this template will participate in the transaction through using the same JDBC Connection. In such a scenario, multiple Sessions will participate in the same database transaction.
Turn this on for operations that are supposed to always execute independently, without side effects caused by a shared Hibernate Session.
public boolean isAlwaysUseNewSession()
public void setExposeNativeSession(boolean exposeNativeSession)
close
calls and automatically applying
query cache settings and transaction timeouts.
HibernateCallback
,
Session
,
setCacheQueries(boolean)
,
setQueryCacheRegion(java.lang.String)
,
prepareQuery(net.sf.hibernate.Query)
,
prepareCriteria(net.sf.hibernate.Criteria)
public boolean isExposeNativeSession()
public void setCheckWriteOperations(boolean checkWriteOperations)
Default is true, for fail-fast behavior when attempting write operations within a read-only transaction. Turn this off to allow save/update/delete on a Session with flush mode NEVER.
HibernateAccessor.setFlushMode(int)
,
checkWriteOperationAllowed(net.sf.hibernate.Session)
,
TransactionDefinition.isReadOnly()
public boolean isCheckWriteOperations()
public void setCacheQueries(boolean cacheQueries)
To specify the query region to be used for queries cached by this template, set the "queryCacheRegion" property.
setQueryCacheRegion(java.lang.String)
,
Query.setCacheable(boolean)
,
Criteria.setCacheable(boolean)
public boolean isCacheQueries()
public void setQueryCacheRegion(String queryCacheRegion)
The cache region will not take effect unless queries created by this template are configured to be cached via the "cacheQueries" property.
setCacheQueries(boolean)
,
Query.setCacheRegion(java.lang.String)
,
Criteria.setCacheRegion(java.lang.String)
public String getQueryCacheRegion()
public Object execute(HibernateCallback action) throws DataAccessException
HibernateOperations
Note: Callback code is not supposed to handle transactions itself! Use an appropriate transaction manager like HibernateTransactionManager. Generally, callback code must not touch any Session lifecycle methods, like close, disconnect, or reconnect, to let the template do its work.
execute
in interface HibernateOperations
action
- callback object that specifies the Hibernate action
DataAccessException
- in case of Hibernate errorsHibernateTransactionManager
,
org.springframework.dao
,
org.springframework.transaction
,
Session
public List executeFind(HibernateCallback action) throws DataAccessException
HibernateOperations
executeFind
in interface HibernateOperations
action
- calback object that specifies the Hibernate action
DataAccessException
- in case of Hibernate errorspublic Object execute(HibernateCallback action, boolean exposeNativeSession) throws DataAccessException
action
- callback object that specifies the Hibernate actionexposeNativeSession
- whether to expose the native Hibernate Session
to callback code
DataAccessException
- in case of Hibernate errorsprotected Session getSession()
Returns a new Session in case of "alwaysUseNewSession" (using the same JDBC Connection as a transactional Session, if applicable), a pre-bound Session in case of "allowCreate" turned off, and a pre-bound or new Session else (new only if no transactional or otherwise pre-bound Session exists).
SessionFactoryUtils.getSession(net.sf.hibernate.SessionFactory, boolean)
,
SessionFactoryUtils.getNewSession(net.sf.hibernate.SessionFactory)
,
setAlwaysUseNewSession(boolean)
,
setAllowCreate(boolean)
protected Session createSessionProxy(Session session)
session
- the Hibernate Session to create a proxy for
Session.close()
,
prepareQuery(net.sf.hibernate.Query)
,
prepareCriteria(net.sf.hibernate.Criteria)
public Object get(Class entityClass, Serializable id) throws DataAccessException
HibernateOperations
get
in interface HibernateOperations
entityClass
- a persistent classid
- an identifier of the persistent instance
DataAccessException
- in case of Hibernate errorsSession.get(Class, java.io.Serializable)
public Object get(Class entityClass, Serializable id, LockMode lockMode) throws DataAccessException
HibernateOperations
get
in interface HibernateOperations
entityClass
- a persistent classid
- an identifier of the persistent instancelockMode
- the lock mode to obtain
DataAccessException
- in case of Hibernate errorsSession.get(Class, java.io.Serializable, net.sf.hibernate.LockMode)
public Object load(Class entityClass, Serializable id) throws DataAccessException
HibernateOperations
load
in interface HibernateOperations
entityClass
- a persistent classid
- an identifier of the persistent instance
DataAccessException
- in case of Hibernate errorsSession.load(Class, java.io.Serializable)
public Object load(Class entityClass, Serializable id, LockMode lockMode) throws DataAccessException
HibernateOperations
load
in interface HibernateOperations
entityClass
- a persistent classid
- an identifier of the persistent instancelockMode
- the lock mode to obtain
DataAccessException
- in case of Hibernate errorsSession.load(Class, java.io.Serializable)
public List loadAll(Class entityClass) throws DataAccessException
HibernateOperations
loadAll
in interface HibernateOperations
entityClass
- a persistent class
DataAccessException
- if there is a Hibernate errorSession.createCriteria(java.lang.Class)
public void load(Object entity, Serializable id) throws DataAccessException
HibernateOperations
load
in interface HibernateOperations
entity
- the object (of the target class) to load intoid
- an identifier of the persistent instance
DataAccessException
- in case of Hibernate errorsSession.load(Object, java.io.Serializable)
public void refresh(Object entity) throws DataAccessException
HibernateOperations
refresh
in interface HibernateOperations
entity
- the persistent instance to re-read
DataAccessException
- in case of Hibernate errorsSession.refresh(Object)
public void refresh(Object entity, LockMode lockMode) throws DataAccessException
HibernateOperations
refresh
in interface HibernateOperations
entity
- the persistent instance to re-readlockMode
- the lock mode to obtain
DataAccessException
- in case of Hibernate errorsSession.refresh(Object, net.sf.hibernate.LockMode)
public boolean contains(Object entity) throws DataAccessException
HibernateOperations
contains
in interface HibernateOperations
entity
- the persistence instance to check
DataAccessException
- if there is a Hibernate errorSession.contains(java.lang.Object)
public void evict(Object entity) throws DataAccessException
HibernateOperations
evict
in interface HibernateOperations
entity
- the persistent instance to evict
DataAccessException
- in case of Hibernate errorsSession.evict(java.lang.Object)
public void initialize(Object proxy) throws DataAccessException
HibernateOperations
initialize
in interface HibernateOperations
proxy
- a proxy for a persistent object or a persistent collection
DataAccessException
- if we can't initialize the proxy, for example
because it is not associated with an active SessionHibernate.initialize(java.lang.Object)
public void lock(Object entity, LockMode lockMode) throws DataAccessException
HibernateOperations
lock
in interface HibernateOperations
entity
- the persistent instance to locklockMode
- the lock mode to obtain
DataAccessException
- in case of Hibernate errorsHibernateOptimisticLockingFailureException
,
Session.lock(Object, net.sf.hibernate.LockMode)
public Serializable save(Object entity) throws DataAccessException
HibernateOperations
save
in interface HibernateOperations
entity
- the transient instance to persist
DataAccessException
- in case of Hibernate errorsSession.save(Object)
public void save(Object entity, Serializable id) throws DataAccessException
HibernateOperations
save
in interface HibernateOperations
entity
- the transient instance to persistid
- the identifier to assign
DataAccessException
- in case of Hibernate errorsSession.save(Object, java.io.Serializable)
public void update(Object entity) throws DataAccessException
HibernateOperations
update
in interface HibernateOperations
entity
- the persistent instance to update
DataAccessException
- in case of Hibernate errorsSession.update(Object)
public void update(Object entity, LockMode lockMode) throws DataAccessException
HibernateOperations
Obtains the specified lock mode if the instance exists, implicitly checking whether the corresponding database entry still exists (throwing an OptimisticLockingFailureException if not found).
update
in interface HibernateOperations
entity
- the persistent instance to updatelockMode
- the lock mode to obtain
DataAccessException
- in case of Hibernate errorsHibernateOptimisticLockingFailureException
,
Session.update(Object)
public void saveOrUpdate(Object entity) throws DataAccessException
HibernateOperations
saveOrUpdate
in interface HibernateOperations
entity
- the persistent instance to save or update
(to be associated with the Hibernate Session)
DataAccessException
- in case of Hibernate errorsSession.saveOrUpdate(Object)
public void saveOrUpdateAll(Collection entities) throws DataAccessException
HibernateOperations
saveOrUpdateAll
in interface HibernateOperations
entities
- the persistent instances to save or update
(to be associated with the Hibernate Session)
DataAccessException
- in case of Hibernate errorsSession.saveOrUpdate(Object)
public Object saveOrUpdateCopy(Object entity) throws DataAccessException
HibernateOperations
saveOrUpdateCopy
in interface HibernateOperations
entity
- the persistent object to save or update
(not necessarily to be associated with the Hibernate Session)
DataAccessException
- in case of Hibernate errorsSession.saveOrUpdateCopy(Object)
public void delete(Object entity) throws DataAccessException
HibernateOperations
delete
in interface HibernateOperations
entity
- the persistent instance to delete
DataAccessException
- in case of Hibernate errorsSession.delete(Object)
public void delete(Object entity, LockMode lockMode) throws DataAccessException
HibernateOperations
Obtains the specified lock mode if the instance exists, implicitly checking whether the corresponding database entry still exists (throwing an OptimisticLockingFailureException if not found).
delete
in interface HibernateOperations
entity
- the persistent instance to deletelockMode
- the lock mode to obtain
DataAccessException
- in case of Hibernate errorsHibernateOptimisticLockingFailureException
,
Session.delete(Object)
public void deleteAll(Collection entities) throws DataAccessException
HibernateOperations
This can be combined with any of the find methods to delete by query in two lines of code, similar to Session's delete by query methods.
deleteAll
in interface HibernateOperations
entities
- the persistent instances to delete
DataAccessException
- in case of Hibernate errorsSession.delete(String)
public void flush() throws DataAccessException
HibernateOperations
Only invoke this for selective eager flushing, for example when JDBC code needs to see certain changes within the same transaction. Else, it's preferable to rely on auto-flushing at transaction completion.
flush
in interface HibernateOperations
DataAccessException
- in case of Hibernate errorsSession.flush()
public void clear() throws DataAccessException
HibernateOperations
clear
in interface HibernateOperations
DataAccessException
- in case of Hibernate errorsSession.clear()
public List find(String queryString) throws DataAccessException
HibernateOperations
find
in interface HibernateOperations
queryString
- a query expressed in Hibernate's query language
DataAccessException
- in case of Hibernate errorsSession.find(String)
,
Session.createQuery(java.lang.String)
public List find(String queryString, Object value) throws DataAccessException
HibernateOperations
find
in interface HibernateOperations
queryString
- a query expressed in Hibernate's query languagevalue
- the value of the parameter
DataAccessException
- in case of Hibernate errorsSession.find(String, Object, net.sf.hibernate.type.Type)
,
Session.createQuery(java.lang.String)
public List find(String queryString, Object value, Type type) throws DataAccessException
HibernateOperations
find
in interface HibernateOperations
queryString
- a query expressed in Hibernate's query languagevalue
- the value of the parametertype
- Hibernate type of the parameter (or null)
DataAccessException
- in case of Hibernate errorsSession.find(String, Object, net.sf.hibernate.type.Type)
,
Session.createQuery(java.lang.String)
public List find(String queryString, Object[] values) throws DataAccessException
HibernateOperations
find
in interface HibernateOperations
queryString
- a query expressed in Hibernate's query languagevalues
- the values of the parameters
DataAccessException
- in case of Hibernate errorsSession.find(String, Object[], net.sf.hibernate.type.Type[])
,
Session.createQuery(java.lang.String)
public List find(String queryString, Object[] values, Type[] types) throws DataAccessException
HibernateOperations
find
in interface HibernateOperations
queryString
- a query expressed in Hibernate's query languagevalues
- the values of the parameterstypes
- Hibernate types of the parameters (or null)
DataAccessException
- in case of Hibernate errorsSession.find(String, Object[], net.sf.hibernate.type.Type[])
,
Session.createQuery(java.lang.String)
public List findByNamedParam(String queryString, String paramName, Object value) throws DataAccessException
HibernateOperations
findByNamedParam
in interface HibernateOperations
queryString
- the name of a Hibernate query in a mapping fileparamName
- the name of parametervalue
- the value of the parameter
DataAccessException
- in case of Hibernate errorsSession.find(String, Object, net.sf.hibernate.type.Type)
,
Session.getNamedQuery(String)
public List findByNamedParam(String queryString, String paramName, Object value, Type type) throws DataAccessException
HibernateOperations
findByNamedParam
in interface HibernateOperations
queryString
- the name of a Hibernate query in a mapping fileparamName
- the name of the parametervalue
- the value of the parametertype
- Hibernate type of the parameter (or null)
DataAccessException
- in case of Hibernate errorsSession.find(String, Object, net.sf.hibernate.type.Type)
,
Session.getNamedQuery(String)
public List findByNamedParam(String queryString, String[] paramNames, Object[] values) throws DataAccessException
HibernateOperations
findByNamedParam
in interface HibernateOperations
queryString
- a query expressed in Hibernate's query languageparamNames
- the names of the parametersvalues
- the values of the parameters
DataAccessException
- in case of Hibernate errorsSession.find(String, Object[], net.sf.hibernate.type.Type[])
,
Session.getNamedQuery(String)
public List findByNamedParam(String queryString, String[] paramNames, Object[] values, Type[] types) throws DataAccessException
HibernateOperations
findByNamedParam
in interface HibernateOperations
queryString
- a query expressed in Hibernate's query languageparamNames
- the names of the parametersvalues
- the values of the parameterstypes
- Hibernate types of the parameters (or null)
DataAccessException
- in case of Hibernate errorsSession.find(String, Object[], net.sf.hibernate.type.Type[])
,
Session.getNamedQuery(String)
public List findByValueBean(String queryString, Object valueBean) throws DataAccessException
HibernateOperations
findByValueBean
in interface HibernateOperations
queryString
- a query expressed in Hibernate's query languagevalueBean
- the values of the parameters
DataAccessException
- in case of Hibernate errorsQuery.setProperties(java.lang.Object)
,
Session.createQuery(java.lang.String)
public List findByNamedQuery(String queryName) throws DataAccessException
HibernateOperations
findByNamedQuery
in interface HibernateOperations
queryName
- the name of a Hibernate query in a mapping file
DataAccessException
- in case of Hibernate errorsSession.find(String)
,
Session.getNamedQuery(String)
public List findByNamedQuery(String queryName, Object value) throws DataAccessException
HibernateOperations
findByNamedQuery
in interface HibernateOperations
queryName
- the name of a Hibernate query in a mapping file
DataAccessException
- in case of Hibernate errorsSession.find(String, Object, net.sf.hibernate.type.Type)
,
Session.getNamedQuery(String)
public List findByNamedQuery(String queryName, Object value, Type type) throws DataAccessException
HibernateOperations
findByNamedQuery
in interface HibernateOperations
queryName
- the name of a Hibernate query in a mapping filetype
- Hibernate type of the parameter (or null)
DataAccessException
- in case of Hibernate errorsSession.find(String, Object, net.sf.hibernate.type.Type)
,
Session.getNamedQuery(String)
public List findByNamedQuery(String queryName, Object[] values) throws DataAccessException
HibernateOperations
findByNamedQuery
in interface HibernateOperations
queryName
- the name of a Hibernate query in a mapping filevalues
- the values of the parameters
DataAccessException
- in case of Hibernate errorsSession.find(String, Object[], net.sf.hibernate.type.Type[])
,
Session.getNamedQuery(String)
public List findByNamedQuery(String queryName, Object[] values, Type[] types) throws DataAccessException
HibernateOperations
findByNamedQuery
in interface HibernateOperations
queryName
- the name of a Hibernate query in a mapping filevalues
- the values of the parameterstypes
- Hibernate types of the parameters (or null)
DataAccessException
- in case of Hibernate errorsSession.find(String, Object[], net.sf.hibernate.type.Type[])
,
Session.getNamedQuery(String)
public List findByNamedQuery(String queryName, String paramName, Object value) throws DataAccessException
findByNamedQuery
in interface HibernateOperations
DataAccessException
findByNamedQueryAndNamedParam(java.lang.String, java.lang.String, java.lang.Object)
public List findByNamedQuery(String queryName, String paramName, Object value, Type type) throws DataAccessException
findByNamedQuery
in interface HibernateOperations
DataAccessException
findByNamedQueryAndNamedParam(java.lang.String, java.lang.String, java.lang.Object)
public List findByNamedQuery(String queryName, String[] paramNames, Object[] values) throws DataAccessException
findByNamedQuery
in interface HibernateOperations
DataAccessException
findByNamedQueryAndNamedParam(java.lang.String, java.lang.String, java.lang.Object)
public List findByNamedQuery(String queryName, String[] paramNames, Object[] values, Type[] types) throws DataAccessException
findByNamedQuery
in interface HibernateOperations
DataAccessException
findByNamedQueryAndNamedParam(java.lang.String, java.lang.String, java.lang.Object)
public List findByNamedQueryAndNamedParam(String queryName, String paramName, Object value) throws DataAccessException
HibernateOperations
findByNamedQueryAndNamedParam
in interface HibernateOperations
queryName
- the name of a Hibernate query in a mapping fileparamName
- the name of parametervalue
- the value of the parameter
DataAccessException
- in case of Hibernate errorsSession.find(String, Object, net.sf.hibernate.type.Type)
,
Session.getNamedQuery(String)
public List findByNamedQueryAndNamedParam(String queryName, String paramName, Object value, Type type) throws DataAccessException
HibernateOperations
findByNamedQueryAndNamedParam
in interface HibernateOperations
queryName
- the name of a Hibernate query in a mapping fileparamName
- the name of the parametervalue
- the value of the parametertype
- Hibernate type of the parameter (or null)
DataAccessException
- in case of Hibernate errorsSession.find(String, Object, net.sf.hibernate.type.Type)
,
Session.getNamedQuery(String)
public List findByNamedQueryAndNamedParam(String queryName, String[] paramNames, Object[] values) throws DataAccessException
HibernateOperations
findByNamedQueryAndNamedParam
in interface HibernateOperations
queryName
- the name of a Hibernate query in a mapping fileparamNames
- the names of the parametersvalues
- the values of the parameters
DataAccessException
- in case of Hibernate errorsSession.find(String, Object[], net.sf.hibernate.type.Type[])
,
Session.getNamedQuery(String)
public List findByNamedQueryAndNamedParam(String queryName, String[] paramNames, Object[] values, Type[] types) throws DataAccessException
HibernateOperations
findByNamedQueryAndNamedParam
in interface HibernateOperations
queryName
- the name of a Hibernate query in a mapping fileparamNames
- the names of the parametersvalues
- the values of the parameterstypes
- Hibernate types of the parameters (or null)
DataAccessException
- in case of Hibernate errorsSession.find(String, Object[], net.sf.hibernate.type.Type[])
,
Session.getNamedQuery(String)
public List findByNamedQueryAndValueBean(String queryName, Object valueBean) throws DataAccessException
HibernateOperations
findByNamedQueryAndValueBean
in interface HibernateOperations
queryName
- the name of a Hibernate query in a mapping filevalueBean
- the values of the parameters
DataAccessException
- in case of Hibernate errorsQuery.setProperties(java.lang.Object)
,
Session.getNamedQuery(String)
public Iterator iterate(String queryString) throws DataAccessException
HibernateOperations
Returns the results as Iterator. Entities returned are initialized on demand. See Hibernate docs for details.
iterate
in interface HibernateOperations
queryString
- a query expressed in Hibernate's query language
DataAccessException
- in case of Hibernate errorsSession.iterate(String)
,
Session.createQuery(java.lang.String)
public Iterator iterate(String queryString, Object value) throws DataAccessException
HibernateOperations
Returns the results as Iterator. Entities returned are initialized on demand. See Hibernate docs for details.
iterate
in interface HibernateOperations
queryString
- a query expressed in Hibernate's query languagevalue
- the value of the parameter
DataAccessException
- in case of Hibernate errorsSession.iterate(String, Object, net.sf.hibernate.type.Type)
,
Session.createQuery(java.lang.String)
public Iterator iterate(String queryString, Object value, Type type) throws DataAccessException
HibernateOperations
Returns the results as Iterator. Entities returned are initialized on demand. See Hibernate docs for details.
iterate
in interface HibernateOperations
queryString
- a query expressed in Hibernate's query languagevalue
- the value of the parametertype
- Hibernate type of the parameter (or null)
DataAccessException
- in case of Hibernate errorsSession.iterate(String, Object, net.sf.hibernate.type.Type)
,
Session.createQuery(java.lang.String)
public Iterator iterate(String queryString, Object[] values) throws DataAccessException
HibernateOperations
Returns the results as Iterator. Entities returned are initialized on demand. See Hibernate docs for details.
iterate
in interface HibernateOperations
queryString
- a query expressed in Hibernate's query languagevalues
- the values of the parameters
DataAccessException
- in case of Hibernate errorsSession.find(String, Object[], net.sf.hibernate.type.Type[])
,
Session.createQuery(java.lang.String)
public Iterator iterate(String queryString, Object[] values, Type[] types) throws DataAccessException
HibernateOperations
Returns the results as Iterator. Entities returned are initialized on demand. See Hibernate docs for details.
iterate
in interface HibernateOperations
queryString
- a query expressed in Hibernate's query languagevalues
- the values of the parameterstypes
- Hibernate types of the parameters (or null)
DataAccessException
- in case of Hibernate errorsSession.find(String, Object[], net.sf.hibernate.type.Type[])
,
Session.createQuery(java.lang.String)
public void closeIterator(Iterator it) throws DataAccessException
HibernateOperations
closeIterator
in interface HibernateOperations
it
- the Iterator to close
DataAccessException
- if the Iterator could not be closedHibernate.close(java.util.Iterator)
public int delete(String queryString) throws DataAccessException
HibernateOperations
delete
in interface HibernateOperations
queryString
- a query expressed in Hibernate's query language
DataAccessException
- in case of Hibernate errorsSession.delete(String)
public int delete(String queryString, Object value, Type type) throws DataAccessException
HibernateOperations
delete
in interface HibernateOperations
queryString
- a query expressed in Hibernate's query languagevalue
- the value of the parametertype
- Hibernate type of the parameter (or null)
DataAccessException
- in case of Hibernate errorsSession.delete(String, Object, net.sf.hibernate.type.Type)
public int delete(String queryString, Object[] values, Type[] types) throws DataAccessException
HibernateOperations
delete
in interface HibernateOperations
queryString
- a query expressed in Hibernate's query languagevalues
- the values of the parameterstypes
- Hibernate types of the parameters (or null)
DataAccessException
- in case of Hibernate errorsSession.delete(String, Object[], net.sf.hibernate.type.Type[])
protected void checkWriteOperationAllowed(Session session) throws InvalidDataAccessApiUsageException
Default implementation throws an InvalidDataAccessApiUsageException in case of FlushMode.NEVER. Can be overridden in subclasses.
session
- current Hibernate Session
InvalidDataAccessApiUsageException
- if write operations are not allowedsetCheckWriteOperations(boolean)
,
HibernateAccessor.getFlushMode()
,
HibernateAccessor.FLUSH_EAGER
,
Session.getFlushMode()
,
FlushMode.NEVER
protected void prepareQuery(Query queryObject)
queryObject
- the Query object to preparesetCacheQueries(boolean)
,
setQueryCacheRegion(java.lang.String)
,
SessionFactoryUtils.applyTransactionTimeout(net.sf.hibernate.Query, net.sf.hibernate.SessionFactory)
protected void prepareCriteria(Criteria criteria)
criteria
- the Criteria object to preparesetCacheQueries(boolean)
,
setQueryCacheRegion(java.lang.String)
,
SessionFactoryUtils.applyTransactionTimeout(net.sf.hibernate.Query, net.sf.hibernate.SessionFactory)
protected void applyNamedParameterToQuery(Query queryObject, String paramName, Object value, Type type) throws HibernateException
queryObject
- the Query objectparamName
- the name of the parametervalue
- the value of the parametertype
- Hibernate type of the parameter (or null if none specified)
HibernateException
- if thrown by the Query objectpublic Query createQuery(Session session, String queryString) throws HibernateException
session.createQuery
instead, which will now
automatically apply the template's query cache settings and the transaction
timeout (through the use of a special Session proxy).
List result = hibernateTemplate.executeFind(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException { Query query = hibernateTemplate.createQuery(session, "..."); ... return query.list(); } });Applies query cache settings and a transaction timeout, if any. If you don't use either of those, the call is equivalent to
Session.createQuery
.
session
- current Hibernate SessionqueryString
- the HQL query string
HibernateException
- if the Query could not be createdHibernateCallback.doInHibernate(net.sf.hibernate.Session)
,
setCacheQueries(boolean)
,
SessionFactoryUtils.applyTransactionTimeout(net.sf.hibernate.Query, net.sf.hibernate.SessionFactory)
,
Session.createQuery(java.lang.String)
public Query getNamedQuery(Session session, String queryName) throws HibernateException
session.getNamedQuery
instead, which will now
automatically apply the template's query cache settings and the transaction
timeout (through the use of a special Session proxy).
List result = hibernateTemplate.executeFind(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException { Query query = hibernateTemplate.getNamedQuery(session, "..."); ... return query.list(); } });Applies query cache settings and a transaction timeout, if any. If you don't use either of those, the call is equivalent to
Session.getNamedQuery
.
session
- current Hibernate SessionqueryName
- the name of the query in the Hibernate mapping file
HibernateException
- if the Query could not be createdHibernateCallback.doInHibernate(net.sf.hibernate.Session)
,
setCacheQueries(boolean)
,
SessionFactoryUtils.applyTransactionTimeout(net.sf.hibernate.Query, net.sf.hibernate.SessionFactory)
,
Session.getNamedQuery(java.lang.String)
public Criteria createCriteria(Session session, Class entityClass) throws HibernateException
session.createCriteria
instead, which will now
automatically apply the template's query cache settings and the transaction
timeout (through the use of a special Session proxy).
List result = hibernateTemplate.executeFind(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException { Criteria criteria = hibernateTemplate.createCriteria(session, MyClass.class); ... return query.list(); } });Applies query cache settings and a transaction timeout, if any. If you don't use either of those, the call is equivalent to
Session.createCriteria
.
session
- current Hibernate SessionentityClass
- the entity class to create the Criteria for
HibernateException
- if the Criteria could not be createdHibernateCallback.doInHibernate(net.sf.hibernate.Session)
,
setCacheQueries(boolean)
,
setQueryCacheRegion(java.lang.String)
,
SessionFactoryUtils.applyTransactionTimeout(net.sf.hibernate.Query, net.sf.hibernate.SessionFactory)
,
Session.createCriteria(java.lang.Class)
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |