public interface

Session

implements Serializable
org.hibernate.Session
Known Indirect Subclasses

Class Overview

The main runtime interface between a Java application and Hibernate. This is the central API class abstracting the notion of a persistence service.

The lifecycle of a Session is bounded by the beginning and end of a logical transaction. (Long transactions might span several database transactions.)

The main function of the Session is to offer create, read and delete operations for instances of mapped entity classes. Instances may exist in one of three states:

transient: never persistent, not associated with any Session
persistent: associated with a unique Session
detached: previously persistent, not associated with any Session

Transient instances may be made persistent by calling save(), persist() or saveOrUpdate(). Persistent instances may be made transient by calling delete(). Any instance returned by a get() or load() method is persistent. Detached instances may be made persistent by calling update(), saveOrUpdate(), lock() or replicate(). The state of a transient or detached instance may also be made persistent as a new persistent instance by calling merge().

save() and persist() result in an SQL INSERT, delete() in an SQL DELETE and update() or merge() in an SQL UPDATE. Changes to persistent instances are detected at flush time and also result in an SQL UPDATE. saveOrUpdate() and replicate() result in either an INSERT or an UPDATE.

It is not intended that implementors be threadsafe. Instead each thread/transaction should obtain its own instance from a SessionFactory.

A Session instance is serializable if its persistent classes are serializable.

A typical transaction should use the following idiom:

 Session sess = factory.openSession();
 Transaction tx;
 try {
     tx = sess.beginTransaction();
     //do some work
     ...
     tx.commit();
 }
 catch (Exception e) {
     if (tx!=null) tx.rollback();
     throw e;
 }
 finally {
     sess.close();
 }
 

If the Session throws an exception, the transaction must be rolled back and the session discarded. The internal state of the Session might not be consistent with the database after the exception occurs.

See Also

Summary

Nested Classes
interface Session.LockRequest Contains locking details (LockMode, Timeout and Scope). 
Public Methods
abstract Transaction beginTransaction()
Begin a unit of work and return the associated Transaction object.
abstract Session.LockRequest buildLockRequest(LockOptions lockOptions)
Build a LockRequest that specifies the LockMode, pessimistic lock timeout and lock scope.
abstract void cancelQuery()
Cancel the execution of the current query.
abstract void clear()
Completely clear the session.
abstract Connection close()
End the session by releasing the JDBC connection and cleaning up.
abstract Connection connection()
This method is deprecated. (scheduled for removal in 4.x). Replacement depends on need; for doing direct JDBC stuff use doWork(Work); for opening a 'temporary Session' use (TBD).
abstract boolean contains(Object object)
Check if this instance is associated with this Session.
abstract Criteria createCriteria(String entityName)
Create a new Criteria instance, for the given entity name.
abstract Criteria createCriteria(String entityName, String alias)
Create a new Criteria instance, for the given entity name, with the given alias.
abstract Criteria createCriteria(Class persistentClass)
Create a new Criteria instance, for the given entity class, or a superclass of an entity class.
abstract Criteria createCriteria(Class persistentClass, String alias)
Create a new Criteria instance, for the given entity class, or a superclass of an entity class, with the given alias.
abstract Query createFilter(Object collection, String queryString)
Create a new instance of Query for the given collection and filter string.
abstract Query createQuery(String queryString)
Create a new instance of Query for the given HQL query string.
abstract SQLQuery createSQLQuery(String queryString)
Create a new instance of SQLQuery for the given SQL query string.
abstract void delete(String entityName, Object object)
Remove a persistent instance from the datastore.
abstract void delete(Object object)
Remove a persistent instance from the datastore.
abstract void disableFetchProfile(String name)
Disable a particular fetch profile on this session.
abstract void disableFilter(String filterName)
Disable the named filter for the current session.
abstract Connection disconnect()
Disconnect the Session from the current JDBC connection.
abstract void doWork(Work work)
Controller for allowing users to perform JDBC related work using the Connection managed by this Session.
abstract void enableFetchProfile(String name)
Enable a particular fetch profile on this session.
abstract Filter enableFilter(String filterName)
Enable the named filter for this current session.
abstract void evict(Object object)
Remove this instance from the session cache.
abstract void flush()
Force this session to flush.
abstract Object get(String entityName, Serializable id, LockMode lockMode)
This method is deprecated. LockMode parameter should be replaced with LockOptions
abstract Object get(Class clazz, Serializable id, LockOptions lockOptions)
Return the persistent instance of the given entity class with the given identifier, or null if there is no such persistent instance.
abstract Object get(Class clazz, Serializable id, LockMode lockMode)
This method is deprecated. LockMode parameter should be replaced with LockOptions
abstract Object get(String entityName, Serializable id)
Return the persistent instance of the given named entity with the given identifier, or null if there is no such persistent instance.
abstract Object get(String entityName, Serializable id, LockOptions lockOptions)
Return the persistent instance of the given entity class with the given identifier, or null if there is no such persistent instance.
abstract Object get(Class clazz, Serializable id)
Return the persistent instance of the given entity class with the given identifier, or null if there is no such persistent instance.
abstract CacheMode getCacheMode()
Get the current cache mode.
abstract LockMode getCurrentLockMode(Object object)
Determine the current lock mode of the given object.
abstract Filter getEnabledFilter(String filterName)
Retrieve a currently enabled filter by name.
abstract EntityMode getEntityMode()
Retrieve the entity mode in effect for this session.
abstract String getEntityName(Object object)
Return the entity name for a persistent entity
abstract FlushMode getFlushMode()
Get the current flush mode for this session.
abstract Serializable getIdentifier(Object object)
Return the identifier value of the given entity as associated with this session.
abstract LobHelper getLobHelper()
Retrieve this session's helper/delegate for creating LOB instances.
abstract Query getNamedQuery(String queryName)
Obtain an instance of Query for a named query string defined in the mapping file.
abstract Session getSession(EntityMode entityMode)
Starts a new Session with the given entity mode in effect.
abstract SessionFactory getSessionFactory()
Get the session factory which created this session.
abstract SessionStatistics getStatistics()
Get the statistics for this session.
abstract Transaction getTransaction()
Get the Transaction instance associated with this session.
abstract TypeHelper getTypeHelper()
Convenience access to the TypeHelper associated with this session's SessionFactory.
abstract boolean isConnected()
Check if the session is currently connected.
abstract boolean isDefaultReadOnly()
Will entities and proxies that are loaded into this session be made read-only by default? To determine the read-only/modifiable setting for a particular entity or proxy:
abstract boolean isDirty()
Does this session contain any changes which must be synchronized with the database? In other words, would any DML operations be executed if we flushed this session?
abstract boolean isFetchProfileEnabled(String name)
Is a particular fetch profile enabled on this session?
abstract boolean isOpen()
Check if the session is still open.
abstract boolean isReadOnly(Object entityOrProxy)
Is the specified entity or proxy read-only? To get the default read-only/modifiable setting used for entities and proxies that are loaded into the session:
abstract void load(Object object, Serializable id)
Read the persistent state associated with the given identifier into the given transient instance.
abstract Object load(Class theClass, Serializable id, LockMode lockMode)
This method is deprecated. LockMode parameter should be replaced with LockOptions
abstract Object load(Class theClass, Serializable id)
Return the persistent instance of the given entity class with the given identifier, assuming that the instance exists.
abstract Object load(String entityName, Serializable id)
Return the persistent instance of the given entity class with the given identifier, assuming that the instance exists.
abstract Object load(String entityName, Serializable id, LockOptions lockOptions)
Return the persistent instance of the given entity class with the given identifier, obtaining the specified lock mode, assuming the instance exists.
abstract Object load(String entityName, Serializable id, LockMode lockMode)
This method is deprecated. LockMode parameter should be replaced with LockOptions
abstract Object load(Class theClass, Serializable id, LockOptions lockOptions)
Return the persistent instance of the given entity class with the given identifier, obtaining the specified lock mode, assuming the instance exists.
abstract void lock(String entityName, Object object, LockMode lockMode)
This method is deprecated. instead call buildLockRequest(LockMode).lock(entityName, object)
abstract void lock(Object object, LockMode lockMode)
This method is deprecated. instead call buildLockRequest(LockMode).lock(object)
abstract Object merge(Object object)
Copy the state of the given object onto the persistent object with the same identifier.
abstract Object merge(String entityName, Object object)
Copy the state of the given object onto the persistent object with the same identifier.
abstract void persist(Object object)
Make a transient instance persistent.
abstract void persist(String entityName, Object object)
Make a transient instance persistent.
abstract void reconnect()
This method is deprecated. Manual reconnection is only needed in the case of application-supplied connections, in which case the reconnect(java.sql.Connection) for should be used.
abstract void reconnect(Connection connection)
Reconnect to the given JDBC connection.
abstract void refresh(Object object, LockMode lockMode)
This method is deprecated. LockMode parameter should be replaced with LockOptions
abstract void refresh(Object object, LockOptions lockOptions)
Re-read the state of the given instance from the underlying database, with the given LockMode.
abstract void refresh(Object object)
Re-read the state of the given instance from the underlying database.
abstract void replicate(String entityName, Object object, ReplicationMode replicationMode)
Persist the state of the given detached instance, reusing the current identifier value.
abstract void replicate(Object object, ReplicationMode replicationMode)
Persist the state of the given detached instance, reusing the current identifier value.
abstract Serializable save(String entityName, Object object)
Persist the given transient instance, first assigning a generated identifier.
abstract Serializable save(Object object)
Persist the given transient instance, first assigning a generated identifier.
abstract void saveOrUpdate(Object object)
Either save(Object) or update(Object) the given instance, depending upon resolution of the unsaved-value checks (see the manual for discussion of unsaved-value checking).
abstract void saveOrUpdate(String entityName, Object object)
Either save(String, Object) or update(String, Object) the given instance, depending upon resolution of the unsaved-value checks (see the manual for discussion of unsaved-value checking).
abstract void setCacheMode(CacheMode cacheMode)
Set the cache mode.
abstract void setDefaultReadOnly(boolean readOnly)
Change the default for entities and proxies loaded into this session from modifiable to read-only mode, or from modifiable to read-only mode.
abstract void setFlushMode(FlushMode flushMode)
Set the flush mode for this session.
abstract void setReadOnly(Object entityOrProxy, boolean readOnly)
Set an unmodified persistent object to read-only mode, or a read-only object to modifiable mode.
abstract void update(Object object)
Update the persistent instance with the identifier of the given detached instance.
abstract void update(String entityName, Object object)
Update the persistent instance with the identifier of the given detached instance.

Public Methods

public abstract Transaction beginTransaction ()

Begin a unit of work and return the associated Transaction object. If a new underlying transaction is required, begin the transaction. Otherwise continue the new work in the context of the existing underlying transaction. The class of the returned Transaction object is determined by the property hibernate.transaction_factory.

Returns
  • a Transaction instance
Throws
HibernateException
HibernateException
See Also

public abstract Session.LockRequest buildLockRequest (LockOptions lockOptions)

Build a LockRequest that specifies the LockMode, pessimistic lock timeout and lock scope. timeout and scope is ignored for optimistic locking. After building the LockRequest, call LockRequest.lock to perform the requested locking. Use: session.buildLockRequest(). setLockMode(LockMode.PESSIMISTIC_WRITE).setTimeOut(1000 * 60).lock(entity);

Parameters
lockOptions contains the lock level
Returns
  • a lockRequest that can be used to lock the passed object.

public abstract void cancelQuery ()

Cancel the execution of the current query.

This is the sole method on session which may be safely called from another thread.

Throws
HibernateException There was a problem canceling the query

public abstract void clear ()

Completely clear the session. Evict all loaded instances and cancel all pending saves, updates and deletions. Do not close open iterators or instances of ScrollableResults.

public abstract Connection close ()

End the session by releasing the JDBC connection and cleaning up. It is not strictly necessary to close the session but you must at least disconnect() it.

Returns
  • the connection provided by the application or null.
Throws
HibernateException Indicates problems cleaning up.

public abstract Connection connection ()

This method is deprecated.
(scheduled for removal in 4.x). Replacement depends on need; for doing direct JDBC stuff use doWork(Work); for opening a 'temporary Session' use (TBD).

Get the JDBC connection of this Session.

If the session is using aggressive collection release (as in a CMT environment), it is the application's responsibility to close the connection returned by this call. Otherwise, the application should not close the connection.

Returns
  • the JDBC connection in use by the Session
Throws
HibernateException if the Session is disconnected

public abstract boolean contains (Object object)

Check if this instance is associated with this Session.

Parameters
object an instance of a persistent class
Returns
  • true if the given instance is associated with this Session

public abstract Criteria createCriteria (String entityName)

Create a new Criteria instance, for the given entity name.

Returns
  • Criteria

public abstract Criteria createCriteria (String entityName, String alias)

Create a new Criteria instance, for the given entity name, with the given alias.

Returns
  • Criteria

public abstract Criteria createCriteria (Class persistentClass)

Create a new Criteria instance, for the given entity class, or a superclass of an entity class.

Parameters
persistentClass a class, which is persistent, or has persistent subclasses
Returns
  • Criteria

public abstract Criteria createCriteria (Class persistentClass, String alias)

Create a new Criteria instance, for the given entity class, or a superclass of an entity class, with the given alias.

Parameters
persistentClass a class, which is persistent, or has persistent subclasses
Returns
  • Criteria

public abstract Query createFilter (Object collection, String queryString)

Create a new instance of Query for the given collection and filter string.

Parameters
collection a persistent collection
queryString a Hibernate query
Returns
  • Query

public abstract Query createQuery (String queryString)

Create a new instance of Query for the given HQL query string.

Parameters
queryString a HQL query
Returns
  • Query

public abstract SQLQuery createSQLQuery (String queryString)

Create a new instance of SQLQuery for the given SQL query string.

Parameters
queryString a SQL query
Returns
  • SQLQuery

public abstract void delete (String entityName, Object object)

Remove a persistent instance from the datastore. The object argument may be an instance associated with the receiving Session or a transient instance with an identifier associated with existing persistent state. This operation cascades to associated instances if the association is mapped with cascade="delete".

Parameters
entityName The entity name for the instance to be removed.
object the instance to be removed

public abstract void delete (Object object)

Remove a persistent instance from the datastore. The argument may be an instance associated with the receiving Session or a transient instance with an identifier associated with existing persistent state. This operation cascades to associated instances if the association is mapped with cascade="delete".

Parameters
object the instance to be removed

public abstract void disableFetchProfile (String name)

Disable a particular fetch profile on this session. No-op if requested profile is already disabled.

Parameters
name The name of the fetch profile to be disabled.
Throws
UnknownProfileException Indicates that the given name does not match any known profile names

public abstract void disableFilter (String filterName)

Disable the named filter for the current session.

Parameters
filterName The name of the filter to be disabled.

public abstract Connection disconnect ()

Disconnect the Session from the current JDBC connection. If the connection was obtained by Hibernate close it and return it to the connection pool; otherwise, return it to the application.

This is used by applications which supply JDBC connections to Hibernate and which require long-sessions (or long-conversations)

Note that disconnect() called on a session where the connection was retrieved by Hibernate through its configured ConnectionProvider has no effect, provided ON_CLOSE is not in effect.

Returns
  • the application-supplied connection or null

public abstract void doWork (Work work)

Controller for allowing users to perform JDBC related work using the Connection managed by this Session.

Parameters
work The work to be performed.
Throws
HibernateException Generally indicates wrapped SQLException

public abstract void enableFetchProfile (String name)

Enable a particular fetch profile on this session. No-op if requested profile is already enabled.

Parameters
name The name of the fetch profile to be enabled.
Throws
UnknownProfileException Indicates that the given name does not match any known profile names

public abstract Filter enableFilter (String filterName)

Enable the named filter for this current session.

Parameters
filterName The name of the filter to be enabled.
Returns
  • The Filter instance representing the enabled filter.

public abstract void evict (Object object)

Remove this instance from the session cache. Changes to the instance will not be synchronized with the database. This operation cascades to associated instances if the association is mapped with cascade="evict".

Parameters
object a persistent instance

public abstract void flush ()

Force this session to flush. Must be called at the end of a unit of work, before committing the transaction and closing the session (depending on flush-mode, commit() calls this method).

Flushing is the process of synchronizing the underlying persistent store with persistable state held in memory.

Throws
HibernateException Indicates problems flushing the session or talking to the database.

public abstract Object get (String entityName, Serializable id, LockMode lockMode)

This method is deprecated.
LockMode parameter should be replaced with LockOptions

Return the persistent instance of the given entity class with the given identifier, or null if there is no such persistent instance. (If the instance is already associated with the session, return that instance. This method never returns an uninitialized instance.) Obtain the specified lock mode if the instance exists.

Parameters
entityName the entity name
id an identifier
lockMode the lock mode
Returns
  • a persistent instance or null
Throws
HibernateException
HibernateException

public abstract Object get (Class clazz, Serializable id, LockOptions lockOptions)

Return the persistent instance of the given entity class with the given identifier, or null if there is no such persistent instance. (If the instance is already associated with the session, return that instance. This method never returns an uninitialized instance.) Obtain the specified lock mode if the instance exists.

Parameters
clazz a persistent class
id an identifier
lockOptions the lock mode
Returns
  • a persistent instance or null

public abstract Object get (Class clazz, Serializable id, LockMode lockMode)

This method is deprecated.
LockMode parameter should be replaced with LockOptions

Return the persistent instance of the given entity class with the given identifier, or null if there is no such persistent instance. (If the instance is already associated with the session, return that instance. This method never returns an uninitialized instance.) Obtain the specified lock mode if the instance exists.

Parameters
clazz a persistent class
id an identifier
lockMode the lock mode
Returns
  • a persistent instance or null
Throws
HibernateException
HibernateException

public abstract Object get (String entityName, Serializable id)

Return the persistent instance of the given named entity with the given identifier, or null if there is no such persistent instance. (If the instance is already associated with the session, return that instance. This method never returns an uninitialized instance.)

Parameters
entityName the entity name
id an identifier
Returns
  • a persistent instance or null

public abstract Object get (String entityName, Serializable id, LockOptions lockOptions)

Return the persistent instance of the given entity class with the given identifier, or null if there is no such persistent instance. (If the instance is already associated with the session, return that instance. This method never returns an uninitialized instance.) Obtain the specified lock mode if the instance exists.

Parameters
entityName the entity name
id an identifier
lockOptions contains the lock mode
Returns
  • a persistent instance or null

public abstract Object get (Class clazz, Serializable id)

Return the persistent instance of the given entity class with the given identifier, or null if there is no such persistent instance. (If the instance is already associated with the session, return that instance. This method never returns an uninitialized instance.)

Parameters
clazz a persistent class
id an identifier
Returns
  • a persistent instance or null

public abstract CacheMode getCacheMode ()

Get the current cache mode.

Returns
  • The current cache mode.

public abstract LockMode getCurrentLockMode (Object object)

Determine the current lock mode of the given object.

Parameters
object a persistent instance
Returns
  • the current lock mode

public abstract Filter getEnabledFilter (String filterName)

Retrieve a currently enabled filter by name.

Parameters
filterName The name of the filter to be retrieved.
Returns
  • The Filter instance representing the enabled filter.

public abstract EntityMode getEntityMode ()

Retrieve the entity mode in effect for this session.

Returns
  • The entity mode for this session.

public abstract String getEntityName (Object object)

Return the entity name for a persistent entity

Parameters
object a persistent entity
Returns
  • the entity name

public abstract FlushMode getFlushMode ()

Get the current flush mode for this session.

Returns
  • The flush mode

public abstract Serializable getIdentifier (Object object)

Return the identifier value of the given entity as associated with this session. An exception is thrown if the given entity instance is transient or detached in relation to this session.

Parameters
object a persistent instance
Returns
  • the identifier
Throws
TransientObjectException if the instance is transient or associated with a different session
HibernateException

public abstract LobHelper getLobHelper ()

Retrieve this session's helper/delegate for creating LOB instances.

Returns
  • This session's LOB helper

public abstract Query getNamedQuery (String queryName)

Obtain an instance of Query for a named query string defined in the mapping file.

Parameters
queryName the name of a query defined externally
Returns
  • Query

public abstract Session getSession (EntityMode entityMode)

Starts a new Session with the given entity mode in effect. This secondary Session inherits the connection, transaction, and other context information from the primary Session. It doesn't need to be flushed or closed by the developer.

Parameters
entityMode The entity mode to use for the new session.
Returns
  • The new session

public abstract SessionFactory getSessionFactory ()

Get the session factory which created this session.

Returns
  • The session factory.
See Also

public abstract SessionStatistics getStatistics ()

Get the statistics for this session.

public abstract Transaction getTransaction ()

Get the Transaction instance associated with this session. The class of the returned Transaction object is determined by the property hibernate.transaction_factory.

Returns
  • a Transaction instance
Throws
HibernateException
See Also

public abstract TypeHelper getTypeHelper ()

Convenience access to the TypeHelper associated with this session's SessionFactory.

Equivalent to calling getSessionFactory().getTypeHelper()

Returns

public abstract boolean isConnected ()

Check if the session is currently connected.

Returns
  • boolean

public abstract boolean isDefaultReadOnly ()

Will entities and proxies that are loaded into this session be made read-only by default? To determine the read-only/modifiable setting for a particular entity or proxy:

Returns
  • true, loaded entities/proxies will be made read-only by default; false, loaded entities/proxies will be made modifiable by default.

public abstract boolean isDirty ()

Does this session contain any changes which must be synchronized with the database? In other words, would any DML operations be executed if we flushed this session?

Returns
  • True if the session contains pending changes; false otherwise.
Throws
HibernateException could not perform dirtying checking

public abstract boolean isFetchProfileEnabled (String name)

Is a particular fetch profile enabled on this session?

Parameters
name The name of the profile to be checked.
Returns
  • True if fetch profile is enabled; false if not.
Throws
UnknownProfileException Indicates that the given name does not match any known profile names

public abstract boolean isOpen ()

Check if the session is still open.

Returns
  • boolean

public abstract boolean isReadOnly (Object entityOrProxy)

Is the specified entity or proxy read-only? To get the default read-only/modifiable setting used for entities and proxies that are loaded into the session:

Parameters
entityOrProxy an entity or HibernateProxy
Returns
  • true, the entity or proxy is read-only; false, the entity or proxy is modifiable.

public abstract void load (Object object, Serializable id)

Read the persistent state associated with the given identifier into the given transient instance.

Parameters
object an "empty" instance of the persistent class
id a valid identifier of an existing persistent instance of the class

public abstract Object load (Class theClass, Serializable id, LockMode lockMode)

This method is deprecated.
LockMode parameter should be replaced with LockOptions

Return the persistent instance of the given entity class with the given identifier, obtaining the specified lock mode, assuming the instance exists.

Parameters
theClass a persistent class
id a valid identifier of an existing persistent instance of the class
lockMode the lock level
Returns
  • the persistent instance or proxy
Throws
HibernateException
HibernateException

public abstract Object load (Class theClass, Serializable id)

Return the persistent instance of the given entity class with the given identifier, assuming that the instance exists. This method might return a proxied instance that is initialized on-demand, when a non-identifier method is accessed.

You should not use this method to determine if an instance exists (use get() instead). Use this only to retrieve an instance that you assume exists, where non-existence would be an actual error.

Parameters
theClass a persistent class
id a valid identifier of an existing persistent instance of the class
Returns
  • the persistent instance or proxy

public abstract Object load (String entityName, Serializable id)

Return the persistent instance of the given entity class with the given identifier, assuming that the instance exists. This method might return a proxied instance that is initialized on-demand, when a non-identifier method is accessed.

You should not use this method to determine if an instance exists (use get() instead). Use this only to retrieve an instance that you assume exists, where non-existence would be an actual error.

Parameters
entityName a persistent class
id a valid identifier of an existing persistent instance of the class
Returns
  • the persistent instance or proxy

public abstract Object load (String entityName, Serializable id, LockOptions lockOptions)

Return the persistent instance of the given entity class with the given identifier, obtaining the specified lock mode, assuming the instance exists.

Parameters
entityName a persistent class
id a valid identifier of an existing persistent instance of the class
lockOptions contains the lock level
Returns
  • the persistent instance or proxy

public abstract Object load (String entityName, Serializable id, LockMode lockMode)

This method is deprecated.
LockMode parameter should be replaced with LockOptions

Return the persistent instance of the given entity class with the given identifier, obtaining the specified lock mode, assuming the instance exists.

Parameters
entityName a persistent class
id a valid identifier of an existing persistent instance of the class
lockMode the lock level
Returns
  • the persistent instance or proxy
Throws
HibernateException
HibernateException

public abstract Object load (Class theClass, Serializable id, LockOptions lockOptions)

Return the persistent instance of the given entity class with the given identifier, obtaining the specified lock mode, assuming the instance exists.

Parameters
theClass a persistent class
id a valid identifier of an existing persistent instance of the class
lockOptions contains the lock level
Returns
  • the persistent instance or proxy

public abstract void lock (String entityName, Object object, LockMode lockMode)

This method is deprecated.
instead call buildLockRequest(LockMode).lock(entityName, object)

Obtain the specified lock level upon the given object. This may be used to perform a version check (LockMode.OPTIMISTIC), to upgrade to a pessimistic lock (LockMode.PESSIMISTIC_WRITE), or to simply reassociate a transient instance with a session (LockMode.NONE). This operation cascades to associated instances if the association is mapped with cascade="lock".

Parameters
object a persistent or transient instance
lockMode the lock level
Throws
HibernateException
HibernateException

public abstract void lock (Object object, LockMode lockMode)

This method is deprecated.
instead call buildLockRequest(LockMode).lock(object)

Obtain the specified lock level upon the given object. This may be used to perform a version check (LockMode.READ), to upgrade to a pessimistic lock (LockMode.PESSIMISTIC_WRITE), or to simply reassociate a transient instance with a session (LockMode.NONE). This operation cascades to associated instances if the association is mapped with cascade="lock".

Parameters
object a persistent or transient instance
lockMode the lock level
Throws
HibernateException
HibernateException

public abstract Object merge (Object object)

Copy the state of the given object onto the persistent object with the same identifier. If there is no persistent instance currently associated with the session, it will be loaded. Return the persistent instance. If the given instance is unsaved, save a copy of and return it as a newly persistent instance. The given instance does not become associated with the session. This operation cascades to associated instances if the association is mapped with cascade="merge".

The semantics of this method are defined by JSR-220.

Parameters
object a detached instance with state to be copied
Returns
  • an updated persistent instance

public abstract Object merge (String entityName, Object object)

Copy the state of the given object onto the persistent object with the same identifier. If there is no persistent instance currently associated with the session, it will be loaded. Return the persistent instance. If the given instance is unsaved, save a copy of and return it as a newly persistent instance. The given instance does not become associated with the session. This operation cascades to associated instances if the association is mapped with cascade="merge".

The semantics of this method are defined by JSR-220.

Parameters
object a detached instance with state to be copied
Returns
  • an updated persistent instance

public abstract void persist (Object object)

Make a transient instance persistent. This operation cascades to associated instances if the association is mapped with cascade="persist".

The semantics of this method are defined by JSR-220.

Parameters
object a transient instance to be made persistent

public abstract void persist (String entityName, Object object)

Make a transient instance persistent. This operation cascades to associated instances if the association is mapped with cascade="persist".

The semantics of this method are defined by JSR-220.

Parameters
object a transient instance to be made persistent

public abstract void reconnect ()

This method is deprecated.
Manual reconnection is only needed in the case of application-supplied connections, in which case the reconnect(java.sql.Connection) for should be used.

Obtain a new JDBC connection. This is used by applications which require long transactions and do not supply connections to the session.

See Also

public abstract void reconnect (Connection connection)

Reconnect to the given JDBC connection. This is used by applications which require long transactions and use application-supplied connections.

Parameters
connection a JDBC connection
See Also

public abstract void refresh (Object object, LockMode lockMode)

This method is deprecated.
LockMode parameter should be replaced with LockOptions

Re-read the state of the given instance from the underlying database, with the given LockMode. It is inadvisable to use this to implement long-running sessions that span many business tasks. This method is, however, useful in certain special circumstances.

Parameters
object a persistent or detached instance
lockMode the lock mode to use
Throws
HibernateException
HibernateException

public abstract void refresh (Object object, LockOptions lockOptions)

Re-read the state of the given instance from the underlying database, with the given LockMode. It is inadvisable to use this to implement long-running sessions that span many business tasks. This method is, however, useful in certain special circumstances.

Parameters
object a persistent or detached instance
lockOptions contains the lock mode to use

public abstract void refresh (Object object)

Re-read the state of the given instance from the underlying database. It is inadvisable to use this to implement long-running sessions that span many business tasks. This method is, however, useful in certain special circumstances. For example

  • where a database trigger alters the object state upon insert or update
  • after executing direct SQL (eg. a mass update) in the same session
  • after inserting a Blob or Clob

Parameters
object a persistent or detached instance

public abstract void replicate (String entityName, Object object, ReplicationMode replicationMode)

Persist the state of the given detached instance, reusing the current identifier value. This operation cascades to associated instances if the association is mapped with cascade="replicate".

Parameters
object a detached instance of a persistent class

public abstract void replicate (Object object, ReplicationMode replicationMode)

Persist the state of the given detached instance, reusing the current identifier value. This operation cascades to associated instances if the association is mapped with cascade="replicate".

Parameters
object a detached instance of a persistent class

public abstract Serializable save (String entityName, Object object)

Persist the given transient instance, first assigning a generated identifier. (Or using the current value of the identifier property if the assigned generator is used.) This operation cascades to associated instances if the association is mapped with cascade="save-update".

Parameters
object a transient instance of a persistent class
Returns
  • the generated identifier

public abstract Serializable save (Object object)

Persist the given transient instance, first assigning a generated identifier. (Or using the current value of the identifier property if the assigned generator is used.) This operation cascades to associated instances if the association is mapped with cascade="save-update".

Parameters
object a transient instance of a persistent class
Returns
  • the generated identifier

public abstract void saveOrUpdate (Object object)

Either save(Object) or update(Object) the given instance, depending upon resolution of the unsaved-value checks (see the manual for discussion of unsaved-value checking).

This operation cascades to associated instances if the association is mapped with cascade="save-update".

Parameters
object a transient or detached instance containing new or updated state

public abstract void saveOrUpdate (String entityName, Object object)

Either save(String, Object) or update(String, Object) the given instance, depending upon resolution of the unsaved-value checks (see the manual for discussion of unsaved-value checking).

This operation cascades to associated instances if the association is mapped with cascade="save-update".

Parameters
object a transient or detached instance containing new or updated state

public abstract void setCacheMode (CacheMode cacheMode)

Set the cache mode.

Cache mode determines the manner in which this session can interact with the second level cache.

Parameters
cacheMode The new cache mode.

public abstract void setDefaultReadOnly (boolean readOnly)

Change the default for entities and proxies loaded into this session from modifiable to read-only mode, or from modifiable to read-only mode. Read-only entities are not dirty-checked and snapshots of persistent state are not maintained. Read-only entities can be modified, but changes are not persisted. When a proxy is initialized, the loaded entity will have the same read-only/modifiable setting as the uninitialized proxy has, regardless of the session's current setting. To change the read-only/modifiable setting for a particular entity or proxy that is already in this session:

Parameters
readOnly true, the default for loaded entities/proxies is read-only; false, the default for loaded entities/proxies is modifiable

public abstract void setFlushMode (FlushMode flushMode)

Set the flush mode for this session.

The flush mode determines the points at which the session is flushed. Flushing is the process of synchronizing the underlying persistent store with persistable state held in memory.

For a logically "read only" session, it is reasonable to set the session's flush mode to MANUAL at the start of the session (in order to achieve some extra performance).

Parameters
flushMode the new flush mode
See Also

public abstract void setReadOnly (Object entityOrProxy, boolean readOnly)

Set an unmodified persistent object to read-only mode, or a read-only object to modifiable mode. In read-only mode, no snapshot is maintained, the instance is never dirty checked, and changes are not persisted. If the entity or proxy already has the specified read-only/modifiable setting, then this method does nothing. To set the default read-only/modifiable setting used for entities and proxies that are loaded into the session:

Parameters
entityOrProxy an entity or HibernateProxy
readOnly if true, the entity or proxy is made read-only; if false, the entity or proxy is made modifiable.

public abstract void update (Object object)

Update the persistent instance with the identifier of the given detached instance. If there is a persistent instance with the same identifier, an exception is thrown. This operation cascades to associated instances if the association is mapped with cascade="save-update".

Parameters
object a detached instance containing updated state

public abstract void update (String entityName, Object object)

Update the persistent instance with the identifier of the given detached instance. If there is a persistent instance with the same identifier, an exception is thrown. This operation cascades to associated instances if the association is mapped with cascade="save-update".

Parameters
object a detached instance containing updated state