java.lang.Object | ||
↳ | org.springframework.orm.hibernate3.HibernateAccessor | |
↳ | org.springframework.orm.hibernate3.HibernateTemplate |
Helper class that simplifies Hibernate data access code. Automatically
converts HibernateExceptions into DataAccessExceptions, following the
org.springframework.dao
exception hierarchy.
The central method is execute
, supporting Hibernate access 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.
NOTE: As of Hibernate 3.0.1, transactional Hibernate access code can also be coded in plain Hibernate style. Hence, for newly started projects, consider adopting the standard Hibernate3 style of coding data access objects instead, based on org.hibernate.SessionFactory#getCurrentSession().
This class can be considered as direct alternative to working with the raw
Hibernate3 Session API (through SessionFactory.getCurrentSession()
).
The major advantage is its automatic conversion to DataAccessExceptions as well
as its capability to fall back to 'auto-commit' style behavior when used outside
of transactions. Note that HibernateTemplate will perform its own Session
management, not participating in a custom Hibernate CurrentSessionContext
unless you explicitly switch "allowCreate"
to "false".
LocalSessionFactoryBean
is the preferred way of obtaining a reference
to a specific Hibernate SessionFactory, at least in a non-EJB environment.
The Spring application context will manage its lifecycle, initializing and
shutting down the factory as part of the application.
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
.
[Expand]
Inherited Constants | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
org.springframework.orm.hibernate3.HibernateAccessor
|
[Expand]
Inherited Fields | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
org.springframework.orm.hibernate3.HibernateAccessor
|
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Create a new HibernateTemplate instance.
| |||||||||||
Create a new HibernateTemplate instance.
| |||||||||||
Create a new HibernateTemplate instance.
|
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Update/delete all objects according to the given query.
| |||||||||||
Update/delete all objects according to the given query, binding one value
to a "?" parameter in the query string.
| |||||||||||
Update/delete all objects according to the given query, binding a number of
values to "?" parameters in the query string.
| |||||||||||
Remove all objects from the org.hibernate.Session cache, and
cancel all pending saves, updates and deletes.
| |||||||||||
Immediately close an Iterator created by any of the various
iterate(..) operations, instead of waiting until the
session is closed or disconnected. | |||||||||||
Check whether the given object is in the Session cache.
| |||||||||||
Delete the given persistent instance.
| |||||||||||
Delete the given persistent instance.
| |||||||||||
Delete the given persistent instance.
| |||||||||||
Delete the given persistent instance.
| |||||||||||
Delete all given persistent instances.
| |||||||||||
Return an enabled Hibernate Filter for the given filter name.
| |||||||||||
Remove the given object from the org.hibernate.Session cache.
| |||||||||||
Execute the action specified by the given action object within a
org.hibernate.Session.
| |||||||||||
Execute the specified action assuming that the result object is a
List . | |||||||||||
Execute the action specified by the given action object within a
native org.hibernate.Session.
| |||||||||||
Execute the action specified by the given action object within a
new org.hibernate.Session.
| |||||||||||
Execute an HQL query, binding a number of values to "?" parameters
in the query string.
| |||||||||||
Execute an HQL query.
| |||||||||||
Execute an HQL query, binding one value to a "?" parameter in the
query string.
| |||||||||||
Execute a query based on the given Hibernate criteria object.
| |||||||||||
Execute a query based on a given Hibernate criteria object.
| |||||||||||
Execute a query based on the given example entity object.
| |||||||||||
Execute a query based on a given example entity object.
| |||||||||||
Execute a query based on a given example entity object.
| |||||||||||
Execute a query based on the given example entity object.
| |||||||||||
Execute an HQL query, binding one value to a ":" named parameter
in the query string.
| |||||||||||
Execute an HQL query, binding a number of values to ":" named
parameters in the query string.
| |||||||||||
Execute a named query binding a number of values to "?" parameters
in the query string.
| |||||||||||
Execute a named query.
| |||||||||||
Execute a named query, binding one value to a "?" parameter in
the query string.
| |||||||||||
Execute a named query, binding one value to a ":" named parameter
in the query string.
| |||||||||||
Execute a named query, binding a number of values to ":" named
parameters in the query string.
| |||||||||||
Execute a named query, binding the properties of the given bean to
":" named parameters in the query string.
| |||||||||||
Execute an HQL query, binding the properties of the given bean to
named parameters in the query string.
| |||||||||||
Flush all pending saves, updates and deletes to the database.
| |||||||||||
Return the persistent instance of the given entity class
with the given identifier, or
null if not found. | |||||||||||
Return the persistent instance of the given entity class
with the given identifier, or
null if not found. | |||||||||||
Return the persistent instance of the given entity class
with the given identifier, or
null if not found. | |||||||||||
Return the persistent instance of the given entity class
with the given identifier, or
null if not found. | |||||||||||
Return the fetch size specified for this HibernateTemplate.
| |||||||||||
Return the maximum number of rows specified for this HibernateTemplate.
| |||||||||||
Return the name of the cache region for queries executed by this template.
| |||||||||||
Force initialization of a Hibernate proxy or persistent collection.
| |||||||||||
Return if a new Session should be created if no thread-bound found.
| |||||||||||
Return whether to always use a new Hibernate Session for this template.
| |||||||||||
Return whether to cache all queries executed by this template.
| |||||||||||
Return whether to check that the Hibernate Session is not in read-only
mode in case of write operations (save/update/delete).
| |||||||||||
Return whether to expose the native Hibernate Session to
HibernateCallback code, or rather a Session proxy.
| |||||||||||
Execute a query for persistent instances, binding one value
to a "?" parameter in the query string.
| |||||||||||
Execute a query for persistent instances.
| |||||||||||
Execute a query for persistent instances, binding a number of
values to "?" parameters in the query string.
| |||||||||||
Load the persistent instance with the given identifier
into the given object, throwing an exception if not found.
| |||||||||||
Return the persistent instance of the given entity class
with the given identifier, throwing an exception if not found.
| |||||||||||
Return the persistent instance of the given entity class
with the given identifier, throwing an exception if not found.
| |||||||||||
Return the persistent instance of the given entity class
with the given identifier, throwing an exception if not found.
| |||||||||||
Return the persistent instance of the given entity class
with the given identifier, throwing an exception if not found.
| |||||||||||
Return all persistent instances of the given entity class.
| |||||||||||
Obtain the specified lock level upon the given object, implicitly
checking whether the corresponding database entry still exists.
| |||||||||||
Obtain the specified lock level upon the given object, implicitly
checking whether the corresponding database entry still exists.
| |||||||||||
Copy the state of the given object onto the persistent object
with the same identifier.
| |||||||||||
Copy the state of the given object onto the persistent object
with the same identifier.
| |||||||||||
Persist the given transient instance.
| |||||||||||
Persist the given transient instance.
| |||||||||||
Re-read the state of the given persistent instance.
| |||||||||||
Re-read the state of the given persistent instance.
| |||||||||||
Persist the state of the given detached instance according to the
given replication mode, reusing the current identifier value.
| |||||||||||
Persist the state of the given detached instance according to the
given replication mode, reusing the current identifier value.
| |||||||||||
Persist the given transient instance.
| |||||||||||
Persist the given transient instance.
| |||||||||||
Save or update the given persistent instance,
according to its id (matching the configured "unsaved-value"?).
| |||||||||||
Save or update the given persistent instance,
according to its id (matching the configured "unsaved-value"?).
| |||||||||||
Save or update all given persistent instances,
according to its id (matching the configured "unsaved-value"?).
| |||||||||||
Set if a new Session should be created when no transactional
Session can be found for the current thread. | |||||||||||
Set whether to always use a new Hibernate Session for this template.
| |||||||||||
Set whether to cache all queries executed by this template.
| |||||||||||
Set whether to check that the Hibernate Session is not in read-only mode
in case of write operations (save/update/delete).
| |||||||||||
Set whether to expose the native Hibernate Session to
HibernateCallback code.
| |||||||||||
Set the fetch size for this HibernateTemplate.
| |||||||||||
Set the maximum number of rows for this HibernateTemplate.
| |||||||||||
Set the name of the cache region for queries executed by this template.
| |||||||||||
Update the given persistent instance,
associating it with the current Hibernate org.hibernate.Session.
| |||||||||||
Update the given persistent instance,
associating it with the current Hibernate org.hibernate.Session.
| |||||||||||
Update the given persistent instance,
associating it with the current Hibernate org.hibernate.Session.
| |||||||||||
Update the given persistent instance,
associating it with the current Hibernate org.hibernate.Session.
|
Protected Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Apply the given name parameter to the given Query object.
| |||||||||||
Check whether write operations are allowed on the given Session.
| |||||||||||
Create a close-suppressing proxy for the given Hibernate Session.
| |||||||||||
Execute the action specified by the given action object within a Session.
| |||||||||||
Return a Session for use by this template.
| |||||||||||
Prepare the given Criteria object, applying cache settings and/or
a transaction timeout.
| |||||||||||
Prepare the given Query object, applying cache settings and/or
a transaction timeout.
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
org.springframework.orm.hibernate3.HibernateAccessor
| |||||||||||
From class
java.lang.Object
| |||||||||||
From interface
org.springframework.beans.factory.BeanFactoryAware
| |||||||||||
From interface
org.springframework.beans.factory.InitializingBean
| |||||||||||
From interface
org.springframework.orm.hibernate3.HibernateOperations
|
Create a new HibernateTemplate instance.
Create a new HibernateTemplate instance.
sessionFactory | SessionFactory to create Sessions |
---|
Create a new HibernateTemplate instance.
sessionFactory | SessionFactory to create Sessions |
---|---|
allowCreate | if a non-transactional Session should be created when no transactional Session can be found for the current thread |
Update/delete all objects according to the given query.
queryString | an update/delete query expressed in Hibernate's query language |
---|
DataAccessException |
---|
Update/delete all objects according to the given query, binding one value to a "?" parameter in the query string.
queryString | an update/delete query expressed in Hibernate's query language |
---|---|
value | the value of the parameter |
DataAccessException |
---|
Update/delete all objects according to the given query, binding a number of values to "?" parameters in the query string.
queryString | an update/delete query expressed in Hibernate's query language |
---|---|
values | the values of the parameters |
DataAccessException |
---|
Remove all objects from the org.hibernate.Session cache, and cancel all pending saves, updates and deletes.
DataAccessException |
---|
Immediately close an Iterator created by any of the various
iterate(..)
operations, instead of waiting until the
session is closed or disconnected.
it | the Iterator to close |
---|
DataAccessException |
---|
Check whether the given object is in the Session cache.
entity | the persistence instance to check |
---|
DataAccessException |
---|
Delete the given persistent instance.
entityName | the name of the persistent entity |
---|---|
entity | the persistent instance to delete |
DataAccessException |
---|
Delete the given persistent instance.
entity | the persistent instance to delete |
---|
DataAccessException |
---|
Delete the given persistent instance.
Obtains the specified lock mode if the instance exists, implicitly checking whether the corresponding database entry still exists.
entity | the persistent instance to delete |
---|---|
lockMode | the lock mode to obtain |
DataAccessException |
---|
Delete the given persistent instance.
Obtains the specified lock mode if the instance exists, implicitly checking whether the corresponding database entry still exists.
entityName | the name of the persistent entity |
---|---|
entity | the persistent instance to delete |
lockMode | the lock mode to obtain |
DataAccessException |
---|
Delete all given persistent instances.
This can be combined with any of the find methods to delete by query in two lines of code.
entities | the persistent instances to delete |
---|
DataAccessException |
---|
Return an enabled Hibernate Filter for the given filter name.
The returned Filter
instance can be used to set filter parameters.
filterName | the name of the filter |
---|
Filter
(either already
enabled or enabled on the fly by this operation)IllegalStateException |
---|
Remove the given object from the org.hibernate.Session cache.
entity | the persistent instance to evict |
---|
DataAccessException |
---|
Execute the action specified by the given action object within a org.hibernate.Session.
Application exceptions thrown by the action object get propagated to the caller (can only be unchecked). Hibernate exceptions are transformed into appropriate DAO ones. Allows for returning a result object, that is a domain object or a collection of domain objects.
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.
action | callback object that specifies the Hibernate action |
---|
null
DataAccessException |
---|
Execute the specified action assuming that the result object is a
List
.
This is a convenience method for executing Hibernate find calls or queries within an action.
action | calback object that specifies the Hibernate action |
---|
null
DataAccessException |
---|
Execute the action specified by the given action object within a native org.hibernate.Session.
This execute variant overrides the template-wide
"exposeNativeSession"
setting.
action | callback object that specifies the Hibernate action |
---|
null
DataAccessException | in case of Hibernate errors |
---|
Execute the action specified by the given action object within a new org.hibernate.Session.
This execute variant overrides the template-wide
"alwaysUseNewSession"
setting.
action | callback object that specifies the Hibernate action |
---|
null
DataAccessException | in case of Hibernate errors |
---|
Execute an HQL query, binding a number of values to "?" parameters in the query string.
queryString | a query expressed in Hibernate's query language |
---|---|
values | the values of the parameters |
List
containing the results of the query executionDataAccessException |
---|
Execute an HQL query.
queryString | a query expressed in Hibernate's query language |
---|
List
containing the results of the query executionDataAccessException |
---|
Execute an HQL query, binding one value to a "?" parameter in the query string.
queryString | a query expressed in Hibernate's query language |
---|---|
value | the value of the parameter |
List
containing the results of the query executionDataAccessException |
---|
Execute a query based on the given Hibernate criteria object.
criteria | the detached Hibernate criteria object. Note: Do not reuse criteria objects! They need to recreated per execution, due to the suboptimal design of Hibernate's criteria facility. |
---|---|
firstResult | the index of the first result object to be retrieved (numbered from 0) |
maxResults | the maximum number of result objects to retrieve (or <=0 for no limit) |
List
containing 0 or more persistent instancesDataAccessException |
---|
Execute a query based on a given Hibernate criteria object.
criteria | the detached Hibernate criteria object. Note: Do not reuse criteria objects! They need to recreated per execution, due to the suboptimal design of Hibernate's criteria facility. |
---|
List
containing 0 or more persistent instancesDataAccessException |
---|
Execute a query based on the given example entity object.
exampleEntity | an instance of the desired entity, serving as example for "query-by-example" |
---|
List
containing 0 or more persistent instancesDataAccessException |
---|
Execute a query based on a given example entity object.
exampleEntity | an instance of the desired entity, serving as example for "query-by-example" |
---|---|
firstResult | the index of the first result object to be retrieved (numbered from 0) |
maxResults | the maximum number of result objects to retrieve (or <=0 for no limit) |
List
containing 0 or more persistent instancesDataAccessException |
---|
Execute a query based on a given example entity object.
entityName | the name of the persistent entity |
---|---|
exampleEntity | an instance of the desired entity, serving as example for "query-by-example" |
firstResult | the index of the first result object to be retrieved (numbered from 0) |
maxResults | the maximum number of result objects to retrieve (or <=0 for no limit) |
List
containing 0 or more persistent instancesDataAccessException |
---|
Execute a query based on the given example entity object.
entityName | the name of the persistent entity |
---|---|
exampleEntity | an instance of the desired entity, serving as example for "query-by-example" |
List
containing 0 or more persistent instancesDataAccessException |
---|
Execute an HQL query, binding one value to a ":" named parameter in the query string.
queryString | a query expressed in Hibernate's query language |
---|---|
paramName | the name of the parameter |
value | the value of the parameter |
List
containing the results of the query executionDataAccessException |
---|
Execute an HQL query, binding a number of values to ":" named parameters in the query string.
queryString | a query expressed in Hibernate's query language |
---|---|
paramNames | the names of the parameters |
values | the values of the parameters |
List
containing the results of the query executionDataAccessException |
---|
Execute a named query binding a number of values to "?" parameters in the query string.
A named query is defined in a Hibernate mapping file.
queryName | the name of a Hibernate query in a mapping file |
---|---|
values | the values of the parameters |
List
containing the results of the query executionDataAccessException |
---|
Execute a named query.
A named query is defined in a Hibernate mapping file.
queryName | the name of a Hibernate query in a mapping file |
---|
List
containing the results of the query executionDataAccessException |
---|
Execute a named query, binding one value to a "?" parameter in the query string.
A named query is defined in a Hibernate mapping file.
queryName | the name of a Hibernate query in a mapping file |
---|---|
value | the value of the parameter |
List
containing the results of the query executionDataAccessException |
---|
Execute a named query, binding one value to a ":" named parameter in the query string.
A named query is defined in a Hibernate mapping file.
queryName | the name of a Hibernate query in a mapping file |
---|---|
paramName | the name of parameter |
value | the value of the parameter |
List
containing the results of the query executionDataAccessException |
---|
Execute a named query, binding a number of values to ":" named parameters in the query string.
A named query is defined in a Hibernate mapping file.
queryName | the name of a Hibernate query in a mapping file |
---|---|
paramNames | the names of the parameters |
values | the values of the parameters |
List
containing the results of the query executionDataAccessException |
---|
Execute a named query, binding the properties of the given bean to ":" named parameters in the query string.
A named query is defined in a Hibernate mapping file.
queryName | the name of a Hibernate query in a mapping file |
---|---|
valueBean | the values of the parameters |
List
containing the results of the query executionDataAccessException |
---|
Execute an HQL query, binding the properties of the given bean to named parameters in the query string.
queryString | a query expressed in Hibernate's query language |
---|---|
valueBean | the values of the parameters |
List
containing the results of the query executionDataAccessException |
---|
Flush all pending saves, updates and deletes to the database.
Only invoke this for selective eager flushing, for example when JDBC code needs to see certain changes within the same transaction. Else, it is preferable to rely on auto-flushing at transaction completion.
DataAccessException |
---|
Return the persistent instance of the given entity class
with the given identifier, or null
if not found.
Obtains the specified lock mode if the instance exists.
This method is a thin wrapper around org.hibernate.Session#get(Class, java.io.Serializable, LockMode) for convenience. For an explanation of the exact semantics of this method, please do refer to the Hibernate API documentation in the first instance.
entityClass | a persistent class |
---|---|
id | the identifier of the persistent instance |
lockMode | the lock mode to obtain |
null
if not foundDataAccessException |
---|
Return the persistent instance of the given entity class
with the given identifier, or null
if not found.
Obtains the specified lock mode if the instance exists.
This method is a thin wrapper around org.hibernate.Session#get(String, java.io.Serializable, LockMode) for convenience. For an explanation of the exact semantics of this method, please do refer to the Hibernate API documentation in the first instance.
entityName | the name of the persistent entity |
---|---|
id | the identifier of the persistent instance |
lockMode | the lock mode to obtain |
null
if not foundDataAccessException |
---|
Return the persistent instance of the given entity class
with the given identifier, or null
if not found.
This method is a thin wrapper around org.hibernate.Session#get(String, java.io.Serializable) for convenience. For an explanation of the exact semantics of this method, please do refer to the Hibernate API documentation in the first instance.
entityName | the name of the persistent entity |
---|---|
id | the identifier of the persistent instance |
null
if not foundDataAccessException |
---|
Return the persistent instance of the given entity class
with the given identifier, or null
if not found.
This method is a thin wrapper around org.hibernate.Session#get(Class, java.io.Serializable) for convenience. For an explanation of the exact semantics of this method, please do refer to the Hibernate API documentation in the first instance.
entityClass | a persistent class |
---|---|
id | the identifier of the persistent instance |
null
if not foundDataAccessException |
---|
Return the fetch size specified for this HibernateTemplate.
Return the maximum number of rows specified for this HibernateTemplate.
Return the name of the cache region for queries executed by this template.
Force initialization of a Hibernate proxy or persistent collection.
proxy | a proxy for a persistent object or a persistent collection |
---|
DataAccessException |
---|
Return if a new Session should be created if no thread-bound found.
Return whether to always use a new Hibernate Session for this template.
Return whether to cache all queries executed by this template.
Return whether to check that the Hibernate Session is not in read-only mode in case of write operations (save/update/delete).
Return whether to expose the native Hibernate Session to HibernateCallback code, or rather a Session proxy.
Execute a query for persistent instances, binding one value to a "?" parameter in the query string.
Returns the results as an Iterator
. Entities returned are
initialized on demand. See the Hibernate API documentation for details.
queryString | a query expressed in Hibernate's query language |
---|---|
value | the value of the parameter |
Iterator
containing 0 or more persistent instancesDataAccessException |
---|
Execute a query for persistent instances.
Returns the results as an Iterator
. Entities returned are
initialized on demand. See the Hibernate API documentation for details.
queryString | a query expressed in Hibernate's query language |
---|
Iterator
containing 0 or more persistent instancesDataAccessException |
---|
Execute a query for persistent instances, binding a number of values to "?" parameters in the query string.
Returns the results as an Iterator
. Entities returned are
initialized on demand. See the Hibernate API documentation for details.
queryString | a query expressed in Hibernate's query language |
---|---|
values | the values of the parameters |
Iterator
containing 0 or more persistent instancesDataAccessException |
---|
Load the persistent instance with the given identifier into the given object, throwing an exception if not found.
This method is a thin wrapper around org.hibernate.Session#load(Object, java.io.Serializable) for convenience. For an explanation of the exact semantics of this method, please do refer to the Hibernate API documentation in the first instance.
entity | the object (of the target class) to load into |
---|---|
id | the identifier of the persistent instance |
DataAccessException |
---|
Return the persistent instance of the given entity class with the given identifier, throwing an exception if not found.
Obtains the specified lock mode if the instance exists.
This method is a thin wrapper around org.hibernate.Session#load(String, java.io.Serializable, LockMode) for convenience. For an explanation of the exact semantics of this method, please do refer to the Hibernate API documentation in the first instance.
entityName | the name of the persistent entity |
---|---|
id | the identifier of the persistent instance |
lockMode | the lock mode to obtain |
DataAccessException |
---|
Return the persistent instance of the given entity class with the given identifier, throwing an exception if not found. Obtains the specified lock mode if the instance exists.
This method is a thin wrapper around org.hibernate.Session#load(Class, java.io.Serializable, LockMode) for convenience. For an explanation of the exact semantics of this method, please do refer to the Hibernate API documentation in the first instance.
entityClass | a persistent class |
---|---|
id | the identifier of the persistent instance |
lockMode | the lock mode to obtain |
DataAccessException |
---|
Return the persistent instance of the given entity class with the given identifier, throwing an exception if not found.
This method is a thin wrapper around org.hibernate.Session#load(String, java.io.Serializable) for convenience. For an explanation of the exact semantics of this method, please do refer to the Hibernate API documentation in the first instance.
entityName | the name of the persistent entity |
---|---|
id | the identifier of the persistent instance |
DataAccessException |
---|
Return the persistent instance of the given entity class with the given identifier, throwing an exception if not found.
This method is a thin wrapper around org.hibernate.Session#load(Class, java.io.Serializable) for convenience. For an explanation of the exact semantics of this method, please do refer to the Hibernate API documentation in the first instance.
entityClass | a persistent class |
---|---|
id | the identifier of the persistent instance |
DataAccessException |
---|
Return all persistent instances of the given entity class. Note: Use queries or criteria for retrieving a specific subset.
entityClass | a persistent class |
---|
List
containing 0 or more persistent instancesDataAccessException |
---|
Obtain the specified lock level upon the given object, implicitly checking whether the corresponding database entry still exists.
entityName | the name of the persistent entity |
---|---|
entity | the persistent instance to lock |
lockMode | the lock mode to obtain |
DataAccessException |
---|
Obtain the specified lock level upon the given object, implicitly checking whether the corresponding database entry still exists.
entity | the persistent instance to lock |
---|---|
lockMode | the lock mode to obtain |
DataAccessException |
---|
Copy the state of the given object onto the persistent object with the same identifier. Follows JSR-220 semantics.
Similar to saveOrUpdate
, but never associates the given
object with the current Hibernate org.hibernate.Session. In
the case of a new entity, the state will be copied over as well.
Note that merge
will not update the identifiers
in the passed-in object graph (in contrast to TopLink)! Consider
registering Spring's IdTransferringMergeEventListener
if you would like to have newly assigned ids transferred to the
original object graph too.
entityName | the name of the persistent entity |
---|---|
entity | the object to merge with the corresponding persistence instance |
DataAccessException |
---|
Copy the state of the given object onto the persistent object with the same identifier. Follows JSR-220 semantics.
Similar to saveOrUpdate
, but never associates the given
object with the current Hibernate Session. In case of a new entity,
the state will be copied over as well.
Note that merge
will not update the identifiers
in the passed-in object graph (in contrast to TopLink)! Consider
registering Spring's IdTransferringMergeEventListener
if
you would like to have newly assigned ids transferred to the original
object graph too.
entity | the object to merge with the corresponding persistence instance |
---|
DataAccessException |
---|
Persist the given transient instance. Follows JSR-220 semantics.
Similar to save
, associating the given object
with the current Hibernate org.hibernate.Session.
entity | the persistent instance to persist |
---|
DataAccessException |
---|
Persist the given transient instance. Follows JSR-220 semantics.
Similar to save
, associating the given object
with the current Hibernate org.hibernate.Session.
entityName | the name of the persistent entity |
---|---|
entity | the persistent instance to persist |
DataAccessException |
---|
Re-read the state of the given persistent instance. Obtains the specified lock mode for the instance.
entity | the persistent instance to re-read |
---|---|
lockMode | the lock mode to obtain |
DataAccessException |
---|
Re-read the state of the given persistent instance.
entity | the persistent instance to re-read |
---|
DataAccessException |
---|
Persist the state of the given detached instance according to the given replication mode, reusing the current identifier value.
entity | the persistent object to replicate |
---|---|
replicationMode | the Hibernate ReplicationMode |
DataAccessException |
---|
Persist the state of the given detached instance according to the given replication mode, reusing the current identifier value.
entityName | the name of the persistent entity |
---|---|
entity | the persistent object to replicate |
replicationMode | the Hibernate ReplicationMode |
DataAccessException |
---|
Persist the given transient instance.
entityName | the name of the persistent entity |
---|---|
entity | the transient instance to persist |
DataAccessException |
---|
Persist the given transient instance.
entity | the transient instance to persist |
---|
DataAccessException |
---|
Save or update the given persistent instance, according to its id (matching the configured "unsaved-value"?). Associates the instance with the current Hibernate org.hibernate.Session.
entity | the persistent instance to save or update
(to be associated with the Hibernate Session ) |
---|
DataAccessException |
---|
Save or update the given persistent instance,
according to its id (matching the configured "unsaved-value"?).
Associates the instance with the current Hibernate Session
.
entityName | the name of the persistent entity |
---|---|
entity | the persistent instance to save or update
(to be associated with the Hibernate Session ) |
DataAccessException |
---|
Save or update all given persistent instances,
according to its id (matching the configured "unsaved-value"?).
Associates the instances with the current Hibernate Session
.
entities | the persistent instances to save or update
(to be associated with the Hibernate Session ) |
---|
DataAccessException |
---|
Set if a new Session should be created when no transactional
Session
can be found for the current thread.
The default value is true
.
HibernateTemplate
is aware of a corresponding
Session
bound to the current thread, for example when using
HibernateTransactionManager
. If allowCreate
is
true
, a new non-transactional Session
will be
created if none is found, which needs to be closed at the end of the operation.
If false
, an IllegalStateException
will get thrown in
this case.
NOTE: As of Spring 2.5, switching allowCreate
to false
will delegate to Hibernate's
org.hibernate.SessionFactory#getCurrentSession() method,
which - with Spring-based setup - will by default delegate to Spring's
SessionFactoryUtils.getSession(sessionFactory, false)
.
This mode also allows for custom Hibernate CurrentSessionContext strategies
to be plugged in, whereas allowCreate
set to true
will always use a Spring-managed Hibernate Session.
Set whether to always use a new Hibernate Session for this template. Default is "false"; if activated, all operations on this template will work on a new Hibernate Session even in case of a pre-bound Session (for example, within a transaction or OpenSessionInViewFilter).
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.
Set whether to cache all queries executed by this template.
If this is "true", all Query and Criteria objects created by this template will be marked as cacheable (including all queries through find methods).
To specify the query region to be used for queries cached by this template, set the "queryCacheRegion" property.
setQueryCacheRegion(String)
Set whether to check that the Hibernate Session is not in read-only mode in case of write operations (save/update/delete).
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.
Set whether to expose the native Hibernate Session to HibernateCallback code.
Default is "false": a Session proxy will be returned, suppressing
close
calls and automatically applying query cache
settings and transaction timeouts.
Set the fetch size for this HibernateTemplate. This is important for processing large result sets: Setting this higher than the default value will increase processing speed at the cost of memory consumption; setting this lower can avoid transferring row data that will never be read by the application.
Default is 0, indicating to use the JDBC driver's default.
Set the maximum number of rows for this HibernateTemplate. This is important for processing subsets of large result sets, avoiding to read and hold the entire result set in the database or in the JDBC driver if we're never interested in the entire result in the first place (for example, when performing searches that might return a large number of matches).
Default is 0, indicating to use the JDBC driver's default.
Set the name of the cache region for queries executed by this template.
If this is specified, it will be applied to all Query and Criteria objects created by this template (including all queries through find methods).
The cache region will not take effect unless queries created by this template are configured to be cached via the "cacheQueries" property.
setCacheQueries(boolean)
Update the given persistent instance, associating it with the current Hibernate org.hibernate.Session.
Obtains the specified lock mode if the instance exists, implicitly checking whether the corresponding database entry still exists.
entity | the persistent instance to update |
---|---|
lockMode | the lock mode to obtain |
DataAccessException |
---|
Update the given persistent instance, associating it with the current Hibernate org.hibernate.Session.
entity | the persistent instance to update |
---|
DataAccessException |
---|
Update the given persistent instance, associating it with the current Hibernate org.hibernate.Session.
Obtains the specified lock mode if the instance exists, implicitly checking whether the corresponding database entry still exists.
entityName | the name of the persistent entity |
---|---|
entity | the persistent instance to update |
lockMode | the lock mode to obtain |
DataAccessException |
---|
Update the given persistent instance, associating it with the current Hibernate org.hibernate.Session.
entityName | the name of the persistent entity |
---|---|
entity | the persistent instance to update |
DataAccessException |
---|
Apply the given name parameter to the given Query object.
queryObject | the Query object |
---|---|
paramName | the name of the parameter |
value | the value of the parameter |
if thrown by the Query object | |
HibernateException |
Check whether write operations are allowed on the given Session.
Default implementation throws an InvalidDataAccessApiUsageException in
case of FlushMode.MANUAL
. Can be overridden in subclasses.
session | current Hibernate Session |
---|
InvalidDataAccessApiUsageException | if write operations are not allowed |
---|
setCheckWriteOperations(boolean)
getFlushMode()
FLUSH_EAGER
Create a close-suppressing proxy for the given Hibernate Session. The proxy also prepares returned Query and Criteria objects.
session | the Hibernate Session to create a proxy for |
---|
prepareQuery(Query)
prepareCriteria(Criteria)
Execute the action specified by the given action object within a Session.
action | callback object that specifies the Hibernate action |
---|---|
enforceNewSession | whether to enforce a new Session for this template even if there is a pre-bound transactional Session |
enforceNativeSession | whether to enforce exposure of the native Hibernate Session to callback code |
null
DataAccessException | in case of Hibernate errors |
---|
Return a Session for use by this template.
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 otherwise (new only if no transactional or otherwise pre-bound Session exists).
null
)Prepare the given Criteria object, applying cache settings and/or a transaction timeout.
criteria | the Criteria object to prepare |
---|
Prepare the given Query object, applying cache settings and/or a transaction timeout.
queryObject | the Query object to prepare |
---|