Save This Page
Home » Spring-Framework-090522 » org.springframework » orm » hibernate3 » [javadoc | source]
org.springframework.orm.hibernate3
public interface: HibernateOperations [javadoc | source]

All Known Implementing Classes:
    HibernateTemplate

Interface that specifies a basic set of Hibernate operations, implemented by HibernateTemplate . Not often used, but a useful option to enhance testability, as it can easily be mocked or stubbed.

Defines HibernateTemplate's data access methods that mirror various org.hibernate.Session methods. Users are strongly encouraged to read the Hibernate Session javadocs for details on the semantics of those methods.

Note that operations that return an java.util.Iterator (i.e. iterate(..)) are supposed to be used within Spring-driven or JTA-driven transactions (with HibernateTransactionManager , org.springframework.transaction.jta.JtaTransactionManager , or EJB CMT). Else, the Iterator won't be able to read results from its java.sql.ResultSet anymore, as the underlying Hibernate Session will already have been closed.

Note that lazy loading will just work with an open Hibernate Session, either within a transaction or within org.springframework.orm.hibernate3.support.OpenSessionInViewFilter / org.springframework.orm.hibernate3.support.OpenSessionInViewInterceptor . Furthermore, some operations just make sense within transactions, for example: contains, evict, lock, flush, clear.

Method from org.springframework.orm.hibernate3.HibernateOperations Summary:
bulkUpdate,   bulkUpdate,   bulkUpdate,   clear,   closeIterator,   contains,   delete,   delete,   delete,   delete,   deleteAll,   enableFilter,   evict,   execute,   executeFind,   find,   find,   find,   findByCriteria,   findByCriteria,   findByExample,   findByExample,   findByExample,   findByExample,   findByNamedParam,   findByNamedParam,   findByNamedQuery,   findByNamedQuery,   findByNamedQuery,   findByNamedQueryAndNamedParam,   findByNamedQueryAndNamedParam,   findByNamedQueryAndValueBean,   findByValueBean,   flush,   get,   get,   get,   get,   initialize,   iterate,   iterate,   iterate,   load,   load,   load,   load,   load,   loadAll,   lock,   lock,   merge,   merge,   persist,   persist,   refresh,   refresh,   replicate,   replicate,   save,   save,   saveOrUpdate,   saveOrUpdate,   saveOrUpdateAll,   update,   update,   update,   update
Method from org.springframework.orm.hibernate3.HibernateOperations Detail:
 public int bulkUpdate(String queryString) throws DataAccessException
    Update/delete all objects according to the given query.
 public int bulkUpdate(String queryString,
    Object value) throws DataAccessException
    Update/delete all objects according to the given query, binding one value to a "?" parameter in the query string.
 public int bulkUpdate(String queryString,
    Object values) throws DataAccessException
    Update/delete all objects according to the given query, binding a number of values to "?" parameters in the query string.
 public  void clear() throws DataAccessException
    Remove all objects from the org.hibernate.Session cache, and cancel all pending saves, updates and deletes.
 public  void closeIterator(Iterator it) throws DataAccessException
    Immediately close an Iterator created by any of the various iterate(..) operations, instead of waiting until the session is closed or disconnected.
 public boolean contains(Object entity) throws DataAccessException
    Check whether the given object is in the Session cache.
 public  void delete(Object entity) throws DataAccessException
    Delete the given persistent instance.
 public  void delete(Object entity,
    LockMode lockMode) throws DataAccessException
    Delete the given persistent instance.

    Obtains the specified lock mode if the instance exists, implicitly checking whether the corresponding database entry still exists.

 public  void delete(String entityName,
    Object entity) throws DataAccessException
    Delete the given persistent instance.
 public  void delete(String entityName,
    Object entity,
    LockMode lockMode) throws DataAccessException
    Delete the given persistent instance.

    Obtains the specified lock mode if the instance exists, implicitly checking whether the corresponding database entry still exists.

 public  void deleteAll(Collection entities) throws 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.

 public Filter enableFilter(String filterName) throws IllegalStateException
    Return an enabled Hibernate Filter for the given filter name. The returned Filter instance can be used to set filter parameters.
 public  void evict(Object entity) throws DataAccessException
 public T execute(HibernateCallback<T> action) throws 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.

 public List executeFind(HibernateCallback<?> action) throws 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.

 public List find(String queryString) throws DataAccessException
    Execute an HQL query.
 public List find(String queryString,
    Object value) throws DataAccessException
    Execute an HQL query, binding one value to a "?" parameter in the query string.
 public List find(String queryString,
    Object values) throws DataAccessException
    Execute an HQL query, binding a number of values to "?" parameters in the query string.
 public List findByCriteria(DetachedCriteria criteria) throws DataAccessException
    Execute a query based on a given Hibernate criteria object.
 public List findByCriteria(DetachedCriteria criteria,
    int firstResult,
    int maxResults) throws DataAccessException
    Execute a query based on the given Hibernate criteria object.
 public List findByExample(Object exampleEntity) throws DataAccessException
    Execute a query based on the given example entity object.
 public List findByExample(String entityName,
    Object exampleEntity) throws DataAccessException
    Execute a query based on the given example entity object.
 public List findByExample(Object exampleEntity,
    int firstResult,
    int maxResults) throws DataAccessException
    Execute a query based on a given example entity object.
 public List findByExample(String entityName,
    Object exampleEntity,
    int firstResult,
    int maxResults) throws DataAccessException
    Execute a query based on a given example entity object.
 public List findByNamedParam(String queryString,
    String paramName,
    Object value) throws DataAccessException
    Execute an HQL query, binding one value to a ":" named parameter in the query string.
 public List findByNamedParam(String queryString,
    String[] paramNames,
    Object[] values) throws DataAccessException
    Execute an HQL query, binding a number of values to ":" named parameters in the query string.
 public List findByNamedQuery(String queryName) throws DataAccessException
    Execute a named query.

    A named query is defined in a Hibernate mapping file.

 public List findByNamedQuery(String queryName,
    Object value) throws DataAccessException
    Execute a named query, binding one value to a "?" parameter in the query string.

    A named query is defined in a Hibernate mapping file.

 public List findByNamedQuery(String queryName,
    Object values) throws DataAccessException
    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.

 public List findByNamedQueryAndNamedParam(String queryName,
    String paramName,
    Object value) throws DataAccessException
    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.

 public List findByNamedQueryAndNamedParam(String queryName,
    String[] paramNames,
    Object[] values) throws DataAccessException
    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.

 public List findByNamedQueryAndValueBean(String queryName,
    Object valueBean) throws DataAccessException
    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.

 public List findByValueBean(String queryString,
    Object valueBean) throws DataAccessException
    Execute an HQL query, binding the properties of the given bean to named parameters in the query string.
 public  void flush() throws DataAccessException
    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.

 public T get(Class<T> entityClass,
    Serializable id) throws DataAccessException
    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.

 public Object get(String entityName,
    Serializable id) throws DataAccessException
    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.

 public T get(Class<T> entityClass,
    Serializable id,
    LockMode lockMode) throws 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.

 public Object get(String entityName,
    Serializable id,
    LockMode lockMode) throws 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(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.

 public  void initialize(Object proxy) throws DataAccessException
    Force initialization of a Hibernate proxy or persistent collection.
 public Iterator iterate(String queryString) throws DataAccessException
    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.

 public Iterator iterate(String queryString,
    Object value) throws DataAccessException
    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.

 public Iterator iterate(String queryString,
    Object values) throws DataAccessException
    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.

 public T load(Class<T> entityClass,
    Serializable id) throws 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.

 public Object load(String entityName,
    Serializable id) throws 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.

 public  void load(Object entity,
    Serializable id) throws DataAccessException
    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.

 public T load(Class<T> entityClass,
    Serializable id,
    LockMode lockMode) throws 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.

 public Object load(String entityName,
    Serializable id,
    LockMode lockMode) throws 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.

 public List<T> loadAll(Class<T> entityClass) throws DataAccessException
    Return all persistent instances of the given entity class. Note: Use queries or criteria for retrieving a specific subset.
 public  void lock(Object entity,
    LockMode lockMode) throws DataAccessException
    Obtain the specified lock level upon the given object, implicitly checking whether the corresponding database entry still exists.
 public  void lock(String entityName,
    Object entity,
    LockMode lockMode) throws DataAccessException
    Obtain the specified lock level upon the given object, implicitly checking whether the corresponding database entry still exists.
 public T merge(T entity) throws 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.

 public T merge(String entityName,
    T entity) throws 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.

 public  void persist(Object entity) throws DataAccessException
    Persist the given transient instance. Follows JSR-220 semantics.

    Similar to save, associating the given object with the current Hibernate org.hibernate.Session .

 public  void persist(String entityName,
    Object entity) throws DataAccessException
    Persist the given transient instance. Follows JSR-220 semantics.

    Similar to save, associating the given object with the current Hibernate org.hibernate.Session .

 public  void refresh(Object entity) throws DataAccessException
    Re-read the state of the given persistent instance.
 public  void refresh(Object entity,
    LockMode lockMode) throws DataAccessException
    Re-read the state of the given persistent instance. Obtains the specified lock mode for the instance.
 public  void replicate(Object entity,
    ReplicationMode replicationMode) throws DataAccessException
    Persist the state of the given detached instance according to the given replication mode, reusing the current identifier value.
 public  void replicate(String entityName,
    Object entity,
    ReplicationMode replicationMode) throws DataAccessException
    Persist the state of the given detached instance according to the given replication mode, reusing the current identifier value.
 public Serializable save(Object entity) throws DataAccessException
    Persist the given transient instance.
 public Serializable save(String entityName,
    Object entity) throws DataAccessException
    Persist the given transient instance.
 public  void saveOrUpdate(Object entity) throws 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 .
 public  void saveOrUpdate(String entityName,
    Object entity) throws 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.
 public  void saveOrUpdateAll(Collection entities) throws DataAccessExceptionDeprecated! as -  of Spring 2.5, in favor of individual
saveOrUpdate or merge usage

    Save or update all given persistent instances, according to its id (matching the configured "unsaved-value"?). Associates the instances with the current Hibernate Session.
 public  void update(Object entity) throws DataAccessException
 public  void update(Object entity,
    LockMode lockMode) throws 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.

 public  void update(String entityName,
    Object entity) throws DataAccessException
 public  void update(String entityName,
    Object entity,
    LockMode lockMode) throws 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.