Class SessionImpl

All Implemented Interfaces:
Serializable, Session, LobCreationContext, SessionImplementor, EventSource, JDBCContext.Context, Session, TransactionFactory.Context

public final class SessionImpl extends AbstractSessionImpl implements EventSource, Session, JDBCContext.Context, LobCreationContext
Concrete implementation of a Session, and also the central, organizing component of Hibernate's internal implementation. As such, this class exposes two interfaces; Session itself, to the application, and SessionImplementor, to other components of Hibernate. This class is not threadsafe.
See Also:
  • Method Details

    • getSession

      public Session getSession(EntityMode entityMode)
      Description copied from interface: Session
      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.
      Specified by:
      getSession in interface Session
      Parameters:
      entityMode - The entity mode to use for the new session.
      Returns:
      The new session
    • clear

      public void clear()
      Description copied from interface: Session
      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.
      Specified by:
      clear in interface Session
    • getBatcher

      public Batcher getBatcher()
      Description copied from interface: SessionImplementor
      Get the prepared statement Batcher for this session
      Specified by:
      getBatcher in interface SessionImplementor
    • getTimestamp

      public long getTimestamp()
      Description copied from interface: SessionImplementor
      System time before the start of the transaction
      Specified by:
      getTimestamp in interface SessionImplementor
    • close

      public Connection close() throws HibernateException
      Description copied from interface: Session
      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 Session.disconnect() it.
      Specified by:
      close in interface Session
      Returns:
      the connection provided by the application or null.
      Throws:
      HibernateException - Indicates problems cleaning up.
    • getConnectionReleaseMode

      public ConnectionReleaseMode getConnectionReleaseMode()
      Specified by:
      getConnectionReleaseMode in interface JDBCContext.Context
    • isAutoCloseSessionEnabled

      public boolean isAutoCloseSessionEnabled()
      Specified by:
      isAutoCloseSessionEnabled in interface JDBCContext.Context
    • isOpen

      public boolean isOpen()
      Description copied from interface: Session
      Check if the session is still open.
      Specified by:
      isOpen in interface Session
      Specified by:
      isOpen in interface SessionImplementor
      Returns:
      boolean
    • isFlushModeNever

      public boolean isFlushModeNever()
      Specified by:
      isFlushModeNever in interface TransactionFactory.Context
    • isFlushBeforeCompletionEnabled

      public boolean isFlushBeforeCompletionEnabled()
      Specified by:
      isFlushBeforeCompletionEnabled in interface TransactionFactory.Context
    • managedFlush

      public void managedFlush()
      Specified by:
      managedFlush in interface TransactionFactory.Context
    • getNonFlushedChanges

      public NonFlushedChanges getNonFlushedChanges() throws HibernateException
      Return changes to this session and its child sessions that have not been flushed yet.

      Specified by:
      getNonFlushedChanges in interface SessionImplementor
      Returns:
      The non-flushed changes.
      Throws:
      HibernateException
    • applyNonFlushedChanges

      public void applyNonFlushedChanges(NonFlushedChanges nonFlushedChanges) throws HibernateException
      Apply non-flushed changes from a different session to this session. It is assumed that this SessionImpl is "clean" (e.g., has no non-flushed changes, no cached entities, no cached collections, no queued actions). The specified NonFlushedChanges object cannot be bound to any session.

      Specified by:
      applyNonFlushedChanges in interface SessionImplementor
      Parameters:
      nonFlushedChanges - the non-flushed changes
      Throws:
      HibernateException
    • shouldAutoClose

      public boolean shouldAutoClose()
      Specified by:
      shouldAutoClose in interface TransactionFactory.Context
    • managedClose

      public void managedClose()
      Specified by:
      managedClose in interface TransactionFactory.Context
    • connection

      public Connection connection() throws HibernateException
      Description copied from interface: Session
      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.
      Specified by:
      connection in interface Session
      Specified by:
      connection in interface SessionImplementor
      Returns:
      the JDBC connection in use by the Session
      Throws:
      HibernateException - if the Session is disconnected
    • isConnected

      public boolean isConnected()
      Description copied from interface: Session
      Check if the session is currently connected.
      Specified by:
      isConnected in interface Session
      Specified by:
      isConnected in interface SessionImplementor
      Returns:
      boolean
    • isTransactionInProgress

      public boolean isTransactionInProgress()
      Description copied from interface: SessionImplementor
      Does this Session have an active Hibernate transaction or is there a JTA transaction in progress?
      Specified by:
      isTransactionInProgress in interface SessionImplementor
    • disconnect

      public Connection disconnect() throws HibernateException
      Description copied from interface: Session
      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 ConnectionReleaseMode.ON_CLOSE is not in effect.

      Specified by:
      disconnect in interface Session
      Returns:
      the application-supplied connection or null
      Throws:
      HibernateException
      See Also:
    • reconnect

      public void reconnect() throws HibernateException
      Description copied from interface: Session
      Obtain a new JDBC connection. This is used by applications which require long transactions and do not supply connections to the session.
      Specified by:
      reconnect in interface Session
      Throws:
      HibernateException
      See Also:
    • reconnect

      public void reconnect(Connection conn) throws HibernateException
      Description copied from interface: Session
      Reconnect to the given JDBC connection. This is used by applications which require long transactions and use application-supplied connections.
      Specified by:
      reconnect in interface Session
      Parameters:
      conn - a JDBC connection
      Throws:
      HibernateException
      See Also:
    • beforeTransactionCompletion

      public void beforeTransactionCompletion(Transaction tx)
      Description copied from interface: SessionImplementor
      Notify the session that the transaction is about to complete
      Specified by:
      beforeTransactionCompletion in interface JDBCContext.Context
      Specified by:
      beforeTransactionCompletion in interface SessionImplementor
    • setAutoClear

      public void setAutoClear(boolean enabled)
      Description copied from interface: SessionImplementor
      Enable/disable automatic cache clearing from after transaction completion (for EJB3)
      Specified by:
      setAutoClear in interface SessionImplementor
    • afterOperation

      public void afterOperation(boolean success)
      Check if there is a Hibernate or JTA transaction in progress and, if there is not, flush if necessary, make sure the connection has been committed (if it is not in autocommit mode) and run the after completion processing
    • afterTransactionCompletion

      public void afterTransactionCompletion(boolean success, Transaction tx)
      Description copied from interface: SessionImplementor
      Notify the session that the transaction completed, so we no longer own the old locks. (Also we should release cache softlocks.) May be called multiple times during the transaction completion process. Also called after an autocommit, in which case the second argument is null.
      Specified by:
      afterTransactionCompletion in interface JDBCContext.Context
      Specified by:
      afterTransactionCompletion in interface SessionImplementor
    • getCurrentLockMode

      public LockMode getCurrentLockMode(Object object) throws HibernateException
      Description copied from interface: Session
      Determine the current lock mode of the given object.
      Specified by:
      getCurrentLockMode in interface Session
      Parameters:
      object - a persistent instance
      Returns:
      the current lock mode
      Throws:
      HibernateException
    • getEntityUsingInterceptor

      public Object getEntityUsingInterceptor(EntityKey key) throws HibernateException
      Description copied from interface: SessionImplementor
      Get the entity instance associated with the given Key, calling the Interceptor if necessary
      Specified by:
      getEntityUsingInterceptor in interface SessionImplementor
      Throws:
      HibernateException
    • saveOrUpdate

      public void saveOrUpdate(Object object) throws HibernateException
      Description copied from interface: Session
      Either Session.save(Object) or Session.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".

      Specified by:
      saveOrUpdate in interface Session
      Parameters:
      object - a transient or detached instance containing new or updated state
      Throws:
      HibernateException
      See Also:
    • saveOrUpdate

      public void saveOrUpdate(String entityName, Object obj) throws HibernateException
      Description copied from interface: Session
      Either Session.save(String, Object) or Session.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".

      Specified by:
      saveOrUpdate in interface Session
      Parameters:
      obj - a transient or detached instance containing new or updated state
      Throws:
      HibernateException
      See Also:
    • save

      public void save(Object obj, Serializable id) throws HibernateException
      Description copied from interface: Session
      Persist the given transient instance, using the given identifier. This operation cascades to associated instances if the association is mapped with cascade="save-update".
      Specified by:
      save in interface Session
      Parameters:
      obj - a transient instance of a persistent class
      id - an unused valid identifier
      Throws:
      HibernateException
    • save

      public Serializable save(Object obj) throws HibernateException
      Description copied from interface: Session
      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".
      Specified by:
      save in interface Session
      Parameters:
      obj - a transient instance of a persistent class
      Returns:
      the generated identifier
      Throws:
      HibernateException
    • save

      public Serializable save(String entityName, Object object) throws HibernateException
      Description copied from interface: Session
      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".
      Specified by:
      save in interface Session
      Parameters:
      object - a transient instance of a persistent class
      Returns:
      the generated identifier
      Throws:
      HibernateException
    • save

      public void save(String entityName, Object object, Serializable id) throws HibernateException
      Description copied from interface: Session
      Persist the given transient instance, using the given identifier. This operation cascades to associated instances if the association is mapped with cascade="save-update".
      Specified by:
      save in interface Session
      Parameters:
      object - a transient instance of a persistent class
      id - an unused valid identifier
      Throws:
      HibernateException
    • update

      public void update(Object obj) throws HibernateException
      Description copied from interface: Session
      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".
      Specified by:
      update in interface Session
      Parameters:
      obj - a detached instance containing updated state
      Throws:
      HibernateException
    • update

      public void update(Object obj, Serializable id) throws HibernateException
      Description copied from interface: Session
      Update the persistent state associated with the given identifier. An exception is thrown if there is a persistent instance with the same identifier in the current session. This operation cascades to associated instances if the association is mapped with cascade="save-update".
      Specified by:
      update in interface Session
      Parameters:
      obj - a detached instance containing updated state
      id - identifier of persistent instance
      Throws:
      HibernateException
    • update

      public void update(String entityName, Object object) throws HibernateException
      Description copied from interface: Session
      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".
      Specified by:
      update in interface Session
      Parameters:
      object - a detached instance containing updated state
      Throws:
      HibernateException
    • update

      public void update(String entityName, Object object, Serializable id) throws HibernateException
      Description copied from interface: Session
      Update the persistent state associated with the given identifier. An exception is thrown if there is a persistent instance with the same identifier in the current session. This operation cascades to associated instances if the association is mapped with cascade="save-update".
      Specified by:
      update in interface Session
      Parameters:
      object - a detached instance containing updated state
      id - identifier of persistent instance
      Throws:
      HibernateException
    • lock

      public void lock(String entityName, Object object, LockMode lockMode) throws HibernateException
      Description copied from interface: Session
      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".
      Specified by:
      lock in interface Session
      Parameters:
      object - a persistent or transient instance
      lockMode - the lock level
      Throws:
      HibernateException
    • buildLockRequest

      public Session.LockRequest buildLockRequest(LockOptions lockOptions)
      Description copied from interface: Session
      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);
      Specified by:
      buildLockRequest in interface Session
      Parameters:
      lockOptions - contains the lock level
      Returns:
      a lockRequest that can be used to lock the passed object.
    • lock

      public void lock(Object object, LockMode lockMode) throws HibernateException
      Description copied from interface: Session
      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".
      Specified by:
      lock in interface Session
      Parameters:
      object - a persistent or transient instance
      lockMode - the lock level
      Throws:
      HibernateException
    • persist

      public void persist(String entityName, Object object) throws HibernateException
      Description copied from interface: Session
      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.
      Specified by:
      persist in interface Session
      Parameters:
      object - a transient instance to be made persistent
      Throws:
      HibernateException
    • persist

      public void persist(Object object) throws HibernateException
      Description copied from interface: Session
      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.
      Specified by:
      persist in interface Session
      Parameters:
      object - a transient instance to be made persistent
      Throws:
      HibernateException
    • persist

      public void persist(String entityName, Object object, Map copiedAlready) throws HibernateException
      Description copied from interface: EventSource
      Cascade persist an entity instance
      Specified by:
      persist in interface EventSource
      Throws:
      HibernateException
    • persistOnFlush

      public void persistOnFlush(String entityName, Object object) throws HibernateException
      Throws:
      HibernateException
    • persistOnFlush

      public void persistOnFlush(Object object) throws HibernateException
      Throws:
      HibernateException
    • persistOnFlush

      public void persistOnFlush(String entityName, Object object, Map copiedAlready) throws HibernateException
      Description copied from interface: EventSource
      Cascade persist an entity instance during the flush process
      Specified by:
      persistOnFlush in interface EventSource
      Throws:
      HibernateException
    • merge

      public Object merge(String entityName, Object object) throws HibernateException
      Description copied from interface: Session
      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.
      Specified by:
      merge in interface Session
      Parameters:
      object - a detached instance with state to be copied
      Returns:
      an updated persistent instance
      Throws:
      HibernateException
    • merge

      public Object merge(Object object) throws HibernateException
      Description copied from interface: Session
      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.
      Specified by:
      merge in interface Session
      Parameters:
      object - a detached instance with state to be copied
      Returns:
      an updated persistent instance
      Throws:
      HibernateException
    • merge

      public void merge(String entityName, Object object, Map copiedAlready) throws HibernateException
      Description copied from interface: EventSource
      Cascade merge an entity instance
      Specified by:
      merge in interface EventSource
      Throws:
      HibernateException
    • saveOrUpdateCopy

      public Object saveOrUpdateCopy(String entityName, Object object) throws HibernateException
      Description copied from interface: Session
      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 or does not exist in the database, save it and return it as a newly persistent instance. Otherwise, the given instance does not become associated with the session.
      Specified by:
      saveOrUpdateCopy in interface Session
      Parameters:
      object - a transient instance with state to be copied
      Returns:
      an updated persistent instance
      Throws:
      HibernateException
    • saveOrUpdateCopy

      public Object saveOrUpdateCopy(Object object) throws HibernateException
      Description copied from interface: Session
      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 or does not exist in the database, save it and return it as a newly persistent instance. Otherwise, the given instance does not become associated with the session.
      Specified by:
      saveOrUpdateCopy in interface Session
      Parameters:
      object - a transient instance with state to be copied
      Returns:
      an updated persistent instance
      Throws:
      HibernateException
    • saveOrUpdateCopy

      public Object saveOrUpdateCopy(String entityName, Object object, Serializable id) throws HibernateException
      Description copied from interface: Session
      Copy the state of the given object onto the persistent object with the given identifier. If there is no persistent instance currently associated with the session, it will be loaded. Return the persistent instance. If there is no database row with the given identifier, save the given instance and return it as a newly persistent instance. Otherwise, the given instance does not become associated with the session.
      Specified by:
      saveOrUpdateCopy in interface Session
      Parameters:
      object - a persistent or transient instance with state to be copied
      id - the identifier of the instance to copy to
      Returns:
      an updated persistent instance
      Throws:
      HibernateException
    • saveOrUpdateCopy

      public Object saveOrUpdateCopy(Object object, Serializable id) throws HibernateException
      Description copied from interface: Session
      Copy the state of the given object onto the persistent object with the given identifier. If there is no persistent instance currently associated with the session, it will be loaded. Return the persistent instance. If there is no database row with the given identifier, save the given instance and return it as a newly persistent instance. Otherwise, the given instance does not become associated with the session.
      Specified by:
      saveOrUpdateCopy in interface Session
      Parameters:
      object - a persistent or transient instance with state to be copied
      id - the identifier of the instance to copy to
      Returns:
      an updated persistent instance
      Throws:
      HibernateException
    • saveOrUpdateCopy

      public void saveOrUpdateCopy(String entityName, Object object, Map copiedAlready) throws HibernateException
      Description copied from interface: EventSource
      Cascade copy an entity instance
      Specified by:
      saveOrUpdateCopy in interface EventSource
      Throws:
      HibernateException
    • delete

      public void delete(Object object) throws HibernateException
      Delete a persistent object
      Specified by:
      delete in interface Session
      Parameters:
      object - the instance to be removed
      Throws:
      HibernateException
    • delete

      public void delete(String entityName, Object object) throws HibernateException
      Delete a persistent object (by explicit entity name)
      Specified by:
      delete in interface Session
      Parameters:
      entityName - The entity name for the instance to be removed.
      object - the instance to be removed
      Throws:
      HibernateException
    • delete

      public void delete(String entityName, Object object, boolean isCascadeDeleteEnabled, Set transientEntities) throws HibernateException
      Delete a persistent object
      Specified by:
      delete in interface EventSource
      Throws:
      HibernateException
    • load

      public void load(Object object, Serializable id) throws HibernateException
      Description copied from interface: Session
      Read the persistent state associated with the given identifier into the given transient instance.
      Specified by:
      load in interface Session
      Parameters:
      object - an "empty" instance of the persistent class
      id - a valid identifier of an existing persistent instance of the class
      Throws:
      HibernateException
    • load

      public Object load(Class entityClass, Serializable id) throws HibernateException
      Description copied from interface: Session
      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.
      Specified by:
      load in interface Session
      Parameters:
      entityClass - a persistent class
      id - a valid identifier of an existing persistent instance of the class
      Returns:
      the persistent instance or proxy
      Throws:
      HibernateException
    • load

      public Object load(String entityName, Serializable id) throws HibernateException
      Description copied from interface: Session
      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.
      Specified by:
      load in interface Session
      Parameters:
      entityName - a persistent class
      id - a valid identifier of an existing persistent instance of the class
      Returns:
      the persistent instance or proxy
      Throws:
      HibernateException
    • get

      public Object get(Class entityClass, Serializable id) throws HibernateException
      Description copied from interface: Session
      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.)
      Specified by:
      get in interface Session
      Parameters:
      entityClass - a persistent class
      id - an identifier
      Returns:
      a persistent instance or null
      Throws:
      HibernateException
    • get

      public Object get(String entityName, Serializable id) throws HibernateException
      Description copied from interface: Session
      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.)
      Specified by:
      get in interface Session
      Parameters:
      entityName - the entity name
      id - an identifier
      Returns:
      a persistent instance or null
      Throws:
      HibernateException
    • immediateLoad

      public Object immediateLoad(String entityName, Serializable id) throws HibernateException
      Load the data for the object with the specified id into a newly created object. This is only called when lazily initializing a proxy. Do NOT return a proxy.
      Specified by:
      immediateLoad in interface SessionImplementor
      Throws:
      HibernateException
    • internalLoad

      public Object internalLoad(String entityName, Serializable id, boolean eager, boolean nullable) throws HibernateException
      Description copied from interface: SessionImplementor
      Load an instance without checking if it was deleted. When nullable is disabled this method may create a new proxy or return an existing proxy; if it does not exist, throw an exception. When nullable is enabled, the method does not create new proxies (but might return an existing proxy); if it does not exist, return null. When eager is enabled, the object is eagerly fetched
      Specified by:
      internalLoad in interface SessionImplementor
      Throws:
      HibernateException
    • load

      public Object load(Class entityClass, Serializable id, LockMode lockMode) throws HibernateException
      Description copied from interface: Session
      Return the persistent instance of the given entity class with the given identifier, obtaining the specified lock mode, assuming the instance exists.
      Specified by:
      load in interface Session
      Parameters:
      entityClass - 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
    • load

      public Object load(Class entityClass, Serializable id, LockOptions lockOptions) throws HibernateException
      Description copied from interface: Session
      Return the persistent instance of the given entity class with the given identifier, obtaining the specified lock mode, assuming the instance exists.
      Specified by:
      load in interface Session
      Parameters:
      entityClass - 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
      Throws:
      HibernateException
    • load

      public Object load(String entityName, Serializable id, LockMode lockMode) throws HibernateException
      Description copied from interface: Session
      Return the persistent instance of the given entity class with the given identifier, obtaining the specified lock mode, assuming the instance exists.
      Specified by:
      load in interface Session
      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
    • load

      public Object load(String entityName, Serializable id, LockOptions lockOptions) throws HibernateException
      Description copied from interface: Session
      Return the persistent instance of the given entity class with the given identifier, obtaining the specified lock mode, assuming the instance exists.
      Specified by:
      load in interface Session
      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
      Throws:
      HibernateException
    • get

      public Object get(Class entityClass, Serializable id, LockMode lockMode) throws HibernateException
      Description copied from interface: Session
      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.
      Specified by:
      get in interface Session
      Parameters:
      entityClass - a persistent class
      id - an identifier
      lockMode - the lock mode
      Returns:
      a persistent instance or null
      Throws:
      HibernateException
    • get

      public Object get(Class entityClass, Serializable id, LockOptions lockOptions) throws HibernateException
      Description copied from interface: Session
      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.
      Specified by:
      get in interface Session
      Parameters:
      entityClass - a persistent class
      id - an identifier
      lockOptions - the lock mode
      Returns:
      a persistent instance or null
      Throws:
      HibernateException
    • get

      public Object get(String entityName, Serializable id, LockMode lockMode) throws HibernateException
      Description copied from interface: Session
      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.
      Specified by:
      get in interface Session
      Parameters:
      entityName - the entity name
      id - an identifier
      lockMode - the lock mode
      Returns:
      a persistent instance or null
      Throws:
      HibernateException
    • get

      public Object get(String entityName, Serializable id, LockOptions lockOptions) throws HibernateException
      Description copied from interface: Session
      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.
      Specified by:
      get in interface Session
      Parameters:
      entityName - the entity name
      id - an identifier
      lockOptions - contains the lock mode
      Returns:
      a persistent instance or null
      Throws:
      HibernateException
    • refresh

      public void refresh(Object object) throws HibernateException
      Description copied from interface: Session
      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
      Specified by:
      refresh in interface Session
      Parameters:
      object - a persistent or detached instance
      Throws:
      HibernateException
    • refresh

      public void refresh(Object object, LockMode lockMode) throws HibernateException
      Description copied from interface: Session
      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.
      Specified by:
      refresh in interface Session
      Parameters:
      object - a persistent or detached instance
      lockMode - the lock mode to use
      Throws:
      HibernateException
    • refresh

      public void refresh(Object object, LockOptions lockOptions) throws HibernateException
      Description copied from interface: Session
      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.
      Specified by:
      refresh in interface Session
      Parameters:
      object - a persistent or detached instance
      lockOptions - contains the lock mode to use
      Throws:
      HibernateException
    • refresh

      public void refresh(Object object, Map refreshedAlready) throws HibernateException
      Description copied from interface: EventSource
      Cascade refesh an entity instance
      Specified by:
      refresh in interface EventSource
      Throws:
      HibernateException
    • replicate

      public void replicate(Object obj, ReplicationMode replicationMode) throws HibernateException
      Description copied from interface: Session
      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".
      Specified by:
      replicate in interface Session
      Parameters:
      obj - a detached instance of a persistent class
      Throws:
      HibernateException
    • replicate

      public void replicate(String entityName, Object obj, ReplicationMode replicationMode) throws HibernateException
      Description copied from interface: Session
      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".
      Specified by:
      replicate in interface Session
      Parameters:
      obj - a detached instance of a persistent class
      Throws:
      HibernateException
    • evict

      public void evict(Object object) throws HibernateException
      remove any hard references to the entity that are held by the infrastructure (references held by application or other persistant instances are okay)
      Specified by:
      evict in interface Session
      Parameters:
      object - a persistent instance
      Throws:
      HibernateException
    • autoFlushIfRequired

      protected boolean autoFlushIfRequired(Set querySpaces) throws HibernateException
      detect in-memory changes, determine if the changes are to tables named in the query and, if so, complete execution the flush
      Throws:
      HibernateException
    • isDirty

      public boolean isDirty() throws HibernateException
      Description copied from interface: Session
      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?
      Specified by:
      isDirty in interface Session
      Returns:
      True if the session contains pending changes; false otherwise.
      Throws:
      HibernateException - could not perform dirtying checking
    • flush

      public void flush() throws HibernateException
      Description copied from interface: Session
      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, Transaction.commit() calls this method).

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

      Specified by:
      flush in interface Session
      Specified by:
      flush in interface SessionImplementor
      Throws:
      HibernateException - Indicates problems flushing the session or talking to the database.
    • forceFlush

      public void forceFlush(EntityEntry entityEntry) throws HibernateException
      Description copied from interface: EventSource
      Force an immediate flush
      Specified by:
      forceFlush in interface EventSource
      Throws:
      HibernateException
    • find

      public List find(String query) throws HibernateException
      Retrieve a list of persistent objects using a hibernate query
      Specified by:
      find in interface Session
      Parameters:
      query - a query expressed in Hibernate's query language
      Returns:
      a distinct list of instances (or arrays of instances)
      Throws:
      HibernateException
    • find

      public List find(String query, Object value, Type type) throws HibernateException
      Description copied from interface: Session
      Execute a query with bind parameters, binding a value to a "?" parameter in the query string.
      Specified by:
      find in interface Session
      Parameters:
      query - the query string
      value - a value to be bound to a "?" placeholder (JDBC IN parameter).
      type - the Hibernate type of the value
      Returns:
      a distinct list of instances (or arrays of instances)
      Throws:
      HibernateException
      See Also:
    • find

      public List find(String query, Object[] values, Type[] types) throws HibernateException
      Description copied from interface: Session
      Execute a query with bind parameters, binding an array of values to "?" parameters in the query string.
      Specified by:
      find in interface Session
      Parameters:
      query - the query string
      values - an array of values to be bound to the "?" placeholders (JDBC IN parameters).
      types - an array of Hibernate types of the values
      Returns:
      a distinct list of instances
      Throws:
      HibernateException
      See Also:
    • list

      public List list(String query, QueryParameters queryParameters) throws HibernateException
      Description copied from interface: SessionImplementor
      Execute a find() query
      Specified by:
      list in interface SessionImplementor
      Throws:
      HibernateException
    • executeUpdate

      public int executeUpdate(String query, QueryParameters queryParameters) throws HibernateException
      Description copied from interface: SessionImplementor
      Execute a HQL update or delete query
      Specified by:
      executeUpdate in interface SessionImplementor
      Throws:
      HibernateException
    • executeNativeUpdate

      public int executeNativeUpdate(NativeSQLQuerySpecification nativeQuerySpecification, QueryParameters queryParameters) throws HibernateException
      Description copied from interface: SessionImplementor
      Execute a native SQL update or delete query
      Specified by:
      executeNativeUpdate in interface SessionImplementor
      Throws:
      HibernateException
    • iterate

      public Iterator iterate(String query) throws HibernateException
      Description copied from interface: Session
      Execute a query and return the results in an iterator. If the query has multiple return values, values will be returned in an array of type Object[].

      Entities returned as results are initialized on demand. The first SQL query returns identifiers only. So iterate() is usually a less efficient way to retrieve objects than find().
      Specified by:
      iterate in interface Session
      Parameters:
      query - the query string
      Returns:
      an iterator
      Throws:
      HibernateException
    • iterate

      public Iterator iterate(String query, Object value, Type type) throws HibernateException
      Description copied from interface: Session
      Execute a query and return the results in an iterator. Write the given value to "?" in the query string. If the query has multiple return values, values will be returned in an array of type Object[].

      Entities returned as results are initialized on demand. The first SQL query returns identifiers only. So iterate() is usually a less efficient way to retrieve objects than find().
      Specified by:
      iterate in interface Session
      Parameters:
      query - the query string
      value - a value to be witten to a "?" placeholder in the query string
      type - the hibernate type of value
      Returns:
      an iterator
      Throws:
      HibernateException
    • iterate

      public Iterator iterate(String query, Object[] values, Type[] types) throws HibernateException
      Description copied from interface: Session
      Execute a query and return the results in an iterator. Write the given values to "?" in the query string. If the query has multiple return values, values will be returned in an array of type Object[].

      Entities returned as results are initialized on demand. The first SQL query returns identifiers only. So iterate() is usually a less efficient way to retrieve objects than find().
      Specified by:
      iterate in interface Session
      Parameters:
      query - the query string
      values - a list of values to be written to "?" placeholders in the query
      types - a list of Hibernate types of the values
      Returns:
      an iterator
      Throws:
      HibernateException
    • iterate

      public Iterator iterate(String query, QueryParameters queryParameters) throws HibernateException
      Description copied from interface: SessionImplementor
      Execute an iterate() query
      Specified by:
      iterate in interface SessionImplementor
      Throws:
      HibernateException
    • scroll

      public ScrollableResults scroll(String query, QueryParameters queryParameters) throws HibernateException
      Description copied from interface: SessionImplementor
      Execute a scroll() query
      Specified by:
      scroll in interface SessionImplementor
      Throws:
      HibernateException
    • delete

      public int delete(String query) throws HibernateException
      Description copied from interface: Session
      Delete all objects returned by the query. Return the number of objects deleted.

      Note that this is very different from the delete-statement support added in HQL since 3.1. The functionality here is to actually peform the query and then iterate the results calling Session.delete(Object) individually.

      Specified by:
      delete in interface Session
      Parameters:
      query - the query string
      Returns:
      the number of instances deleted
      Throws:
      HibernateException
    • delete

      public int delete(String query, Object value, Type type) throws HibernateException
      Description copied from interface: Session
      Delete all objects returned by the query. Return the number of objects deleted.

      Note that this is very different from the delete-statement support added in HQL since 3.1. The functionality here is to actually peform the query and then iterate the results calling Session.delete(Object) individually.

      Specified by:
      delete in interface Session
      Parameters:
      query - the query string
      value - a value to be witten to a "?" placeholder in the query string.
      type - the hibernate type of value.
      Returns:
      the number of instances deleted
      Throws:
      HibernateException
    • delete

      public int delete(String query, Object[] values, Type[] types) throws HibernateException
      Description copied from interface: Session
      Delete all objects returned by the query. Return the number of objects deleted.

      Note that this is very different from the delete-statement support added in HQL since 3.1. The functionality here is to actually peform the query and then iterate the results calling Session.delete(Object) individually.

      Specified by:
      delete in interface Session
      Parameters:
      query - the query string
      values - a list of values to be written to "?" placeholders in the query.
      types - a list of Hibernate types of the values
      Returns:
      the number of instances deleted
      Throws:
      HibernateException
    • createFilter

      public Query createFilter(Object collection, String queryString)
      Description copied from interface: Session
      Create a new instance of Query for the given collection and filter string.
      Specified by:
      createFilter in interface Session
      Parameters:
      collection - a persistent collection
      queryString - a Hibernate query
      Returns:
      Query
    • getNamedQuery

      public Query getNamedQuery(String queryName) throws MappingException
      Description copied from interface: SessionImplementor
      Get a Query instance for a named query or named native SQL query
      Specified by:
      getNamedQuery in interface Session
      Specified by:
      getNamedQuery in interface SessionImplementor
      Overrides:
      getNamedQuery in class AbstractSessionImpl
      Parameters:
      queryName - the name of a query defined externally
      Returns:
      Query
      Throws:
      MappingException
    • instantiate

      public Object instantiate(String entityName, Serializable id) throws HibernateException
      Description copied from interface: SessionImplementor
      Instantiate the entity class, initializing with the given identifier
      Specified by:
      instantiate in interface SessionImplementor
      Throws:
      HibernateException
    • instantiate

      public Object instantiate(EntityPersister persister, Serializable id) throws HibernateException
      give the interceptor an opportunity to override the default instantiation
      Specified by:
      instantiate in interface EventSource
      Throws:
      HibernateException
    • getEntityMode

      public EntityMode getEntityMode()
      Description copied from interface: Session
      Retrieve the entity mode in effect for this session.
      Specified by:
      getEntityMode in interface Session
      Specified by:
      getEntityMode in interface SessionImplementor
      Returns:
      The entity mode for this session.
    • setFlushMode

      public void setFlushMode(FlushMode flushMode)
      Description copied from interface: Session
      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 FlushMode.MANUAL at the start of the session (in order to achieve some extra performance).

      Specified by:
      setFlushMode in interface Session
      Specified by:
      setFlushMode in interface SessionImplementor
      Parameters:
      flushMode - the new flush mode
      See Also:
    • getFlushMode

      public FlushMode getFlushMode()
      Description copied from interface: Session
      Get the current flush mode for this session.
      Specified by:
      getFlushMode in interface Session
      Specified by:
      getFlushMode in interface SessionImplementor
      Returns:
      The flush mode
    • getCacheMode

      public CacheMode getCacheMode()
      Description copied from interface: Session
      Get the current cache mode.
      Specified by:
      getCacheMode in interface Session
      Specified by:
      getCacheMode in interface SessionImplementor
      Returns:
      The current cache mode.
    • setCacheMode

      public void setCacheMode(CacheMode cacheMode)
      Description copied from interface: Session
      Set the cache mode.

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

      Specified by:
      setCacheMode in interface Session
      Specified by:
      setCacheMode in interface SessionImplementor
      Parameters:
      cacheMode - The new cache mode.
    • getTransaction

      public Transaction getTransaction() throws HibernateException
      Description copied from interface: Session
      Get the Transaction instance associated with this session. The class of the returned Transaction object is determined by the property hibernate.transaction_factory.
      Specified by:
      getTransaction in interface Session
      Returns:
      a Transaction instance
      Throws:
      HibernateException
      See Also:
    • beginTransaction

      public Transaction beginTransaction() throws HibernateException
      Description copied from interface: Session
      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.
      Specified by:
      beginTransaction in interface Session
      Returns:
      a Transaction instance
      Throws:
      HibernateException
      See Also:
    • afterTransactionBegin

      public void afterTransactionBegin(Transaction tx)
      Description copied from interface: JDBCContext.Context
      We cannot rely upon this method being called! It is only called if we are using Hibernate Transaction API.
      Specified by:
      afterTransactionBegin in interface JDBCContext.Context
    • getEntityPersister

      public EntityPersister getEntityPersister(String entityName, Object object)
      Description copied from interface: SessionImplementor
      Get the EntityPersister for any instance
      Specified by:
      getEntityPersister in interface SessionImplementor
      Parameters:
      entityName - optional entity name
      object - the entity instance
    • getIdentifier

      public Serializable getIdentifier(Object object) throws HibernateException
      Description copied from interface: Session
      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.
      Specified by:
      getIdentifier in interface Session
      Parameters:
      object - a persistent instance
      Returns:
      the identifier
      Throws:
      HibernateException
    • getContextEntityIdentifier

      public Serializable getContextEntityIdentifier(Object object)
      Get the id value for an object that is actually associated with the session. This is a bit stricter than getEntityIdentifierIfNotUnsaved().
      Specified by:
      getContextEntityIdentifier in interface SessionImplementor
    • filter

      public Collection filter(Object collection, String filter) throws HibernateException
      Description copied from interface: Session
      Apply a filter to a persistent collection. A filter is a Hibernate query that may refer to this, the collection element. Filters allow efficient access to very large lazy collections. (Executing the filter does not initialize the collection.)
      Specified by:
      filter in interface Session
      Parameters:
      collection - a persistent collection to filter
      filter - a filter query string
      Returns:
      Collection the resulting collection
      Throws:
      HibernateException
    • filter

      public Collection filter(Object collection, String filter, Object value, Type type) throws HibernateException
      Description copied from interface: Session
      Apply a filter to a persistent collection. A filter is a Hibernate query that may refer to this, the collection element.
      Specified by:
      filter in interface Session
      Parameters:
      collection - a persistent collection to filter
      filter - a filter query string
      value - a value to be witten to a "?" placeholder in the query string
      type - the hibernate type of value
      Returns:
      Collection
      Throws:
      HibernateException
    • filter

      public Collection filter(Object collection, String filter, Object[] values, Type[] types) throws HibernateException
      Description copied from interface: Session
      Apply a filter to a persistent collection. Bind the given parameters to "?" placeholders. A filter is a Hibernate query that may refer to this, the collection element.
      Specified by:
      filter in interface Session
      Parameters:
      collection - a persistent collection to filter
      filter - a filter query string
      values - a list of values to be written to "?" placeholders in the query
      types - a list of Hibernate types of the values
      Returns:
      Collection
      Throws:
      HibernateException
    • listFilter

      public List listFilter(Object collection, String filter, QueryParameters queryParameters) throws HibernateException
      Description copied from interface: SessionImplementor
      Execute a filter
      Specified by:
      listFilter in interface SessionImplementor
      Throws:
      HibernateException
    • iterateFilter

      public Iterator iterateFilter(Object collection, String filter, QueryParameters queryParameters) throws HibernateException
      Description copied from interface: SessionImplementor
      Iterate a filter
      Specified by:
      iterateFilter in interface SessionImplementor
      Throws:
      HibernateException
    • createCriteria

      public Criteria createCriteria(Class persistentClass, String alias)
      Description copied from interface: Session
      Create a new Criteria instance, for the given entity class, or a superclass of an entity class, with the given alias.
      Specified by:
      createCriteria in interface Session
      Parameters:
      persistentClass - a class, which is persistent, or has persistent subclasses
      Returns:
      Criteria
    • createCriteria

      public Criteria createCriteria(String entityName, String alias)
      Description copied from interface: Session
      Create a new Criteria instance, for the given entity name, with the given alias.
      Specified by:
      createCriteria in interface Session
      Parameters:
      entityName -
      Returns:
      Criteria
    • createCriteria

      public Criteria createCriteria(Class persistentClass)
      Description copied from interface: Session
      Create a new Criteria instance, for the given entity class, or a superclass of an entity class.
      Specified by:
      createCriteria in interface Session
      Parameters:
      persistentClass - a class, which is persistent, or has persistent subclasses
      Returns:
      Criteria
    • createCriteria

      public Criteria createCriteria(String entityName)
      Description copied from interface: Session
      Create a new Criteria instance, for the given entity name.
      Specified by:
      createCriteria in interface Session
      Parameters:
      entityName -
      Returns:
      Criteria
    • scroll

      public ScrollableResults scroll(CriteriaImpl criteria, ScrollMode scrollMode)
      Description copied from interface: SessionImplementor
      Execute a criteria query
      Specified by:
      scroll in interface SessionImplementor
    • list

      public List list(CriteriaImpl criteria) throws HibernateException
      Description copied from interface: SessionImplementor
      Execute a criteria query
      Specified by:
      list in interface SessionImplementor
      Throws:
      HibernateException
    • contains

      public boolean contains(Object object)
      Description copied from interface: Session
      Check if this instance is associated with this Session.
      Specified by:
      contains in interface Session
      Parameters:
      object - an instance of a persistent class
      Returns:
      true if the given instance is associated with this Session
    • createQuery

      public Query createQuery(String queryString)
      Description copied from interface: Session
      Create a new instance of Query for the given HQL query string.
      Specified by:
      createQuery in interface Session
      Overrides:
      createQuery in class AbstractSessionImpl
      Parameters:
      queryString - a HQL query
      Returns:
      Query
    • createSQLQuery

      public SQLQuery createSQLQuery(String sql)
      Description copied from interface: Session
      Create a new instance of SQLQuery for the given SQL query string.
      Specified by:
      createSQLQuery in interface Session
      Overrides:
      createSQLQuery in class AbstractSessionImpl
      Parameters:
      sql - a SQL query
      Returns:
      SQLQuery
    • createSQLQuery

      public Query createSQLQuery(String sql, String returnAlias, Class returnClass)
      Description copied from interface: Session
      Create a new instance of Query for the given SQL string.

      Returned instances should all be SQLQuery.

      Specified by:
      createSQLQuery in interface Session
      Parameters:
      sql - a query expressed in SQL
      returnAlias - a table alias that appears inside {} in the SQL string
      returnClass - the returned persistent class
    • createSQLQuery

      public Query createSQLQuery(String sql, String[] returnAliases, Class[] returnClasses)
      Description copied from interface: Session
      Create a new instance of Query for the given SQL string.

      Returned instances should all be SQLQuery.

      Specified by:
      createSQLQuery in interface Session
      Parameters:
      sql - a query expressed in SQL
      returnAliases - an array of table aliases that appear inside {} in the SQL string
      returnClasses - the returned persistent classes
    • scrollCustomQuery

      public ScrollableResults scrollCustomQuery(CustomQuery customQuery, QueryParameters queryParameters) throws HibernateException
      Description copied from interface: SessionImplementor
      Execute an SQL Query
      Specified by:
      scrollCustomQuery in interface SessionImplementor
      Throws:
      HibernateException
    • listCustomQuery

      public List listCustomQuery(CustomQuery customQuery, QueryParameters queryParameters) throws HibernateException
      Description copied from interface: SessionImplementor
      Execute an SQL Query
      Specified by:
      listCustomQuery in interface SessionImplementor
      Throws:
      HibernateException
    • getSessionFactory

      public SessionFactory getSessionFactory()
      Description copied from interface: Session
      Get the session factory which created this session.
      Specified by:
      getSessionFactory in interface Session
      Returns:
      The session factory.
      See Also:
    • initializeCollection

      public void initializeCollection(PersistentCollection collection, boolean writing) throws HibernateException
      Description copied from interface: SessionImplementor
      Initialize the collection (if not already initialized)
      Specified by:
      initializeCollection in interface SessionImplementor
      Throws:
      HibernateException
    • bestGuessEntityName

      public String bestGuessEntityName(Object object)
      Description copied from interface: SessionImplementor
      The best guess entity name for an entity not in an association
      Specified by:
      bestGuessEntityName in interface SessionImplementor
    • getEntityName

      public String getEntityName(Object object)
      Description copied from interface: Session
      Return the entity name for a persistent entity
      Specified by:
      getEntityName in interface Session
      Parameters:
      object - a persistent entity
      Returns:
      the entity name
    • guessEntityName

      public String guessEntityName(Object object) throws HibernateException
      Description copied from interface: SessionImplementor
      The guessed entity name for an entity not in an association
      Specified by:
      guessEntityName in interface SessionImplementor
      Throws:
      HibernateException
    • cancelQuery

      public void cancelQuery() throws HibernateException
      Description copied from interface: Session
      Cancel the execution of the current query.

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

      Specified by:
      cancelQuery in interface Session
      Throws:
      HibernateException - There was a problem canceling the query
    • getInterceptor

      public Interceptor getInterceptor()
      Description copied from interface: SessionImplementor
      Retrieves the interceptor currently in use by this event source.
      Specified by:
      getInterceptor in interface SessionImplementor
      Returns:
      The interceptor.
    • getDontFlushFromFind

      public int getDontFlushFromFind()
      Specified by:
      getDontFlushFromFind in interface SessionImplementor
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • getListeners

      public EventListeners getListeners()
      Description copied from interface: SessionImplementor
      Retrieves the configured event listeners from this event source.
      Specified by:
      getListeners in interface SessionImplementor
      Returns:
      The configured event listeners.
    • getActionQueue

      public ActionQueue getActionQueue()
      Description copied from interface: EventSource
      Get the ActionQueue for this session
      Specified by:
      getActionQueue in interface EventSource
    • getPersistenceContext

      public PersistenceContext getPersistenceContext()
      Description copied from interface: SessionImplementor
      Get the persistence context for this session
      Specified by:
      getPersistenceContext in interface SessionImplementor
    • getStatistics

      public SessionStatistics getStatistics()
      Description copied from interface: Session
      Get the statistics for this session.
      Specified by:
      getStatistics in interface Session
    • isEventSource

      public boolean isEventSource()
      Specified by:
      isEventSource in interface SessionImplementor
    • isDefaultReadOnly

      public 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:
      Specified by:
      isDefaultReadOnly in interface Session
      Returns:
      true, loaded entities/proxies will be made read-only by default; false, loaded entities/proxies will be made modifiable by default.
      See Also:
    • setDefaultReadOnly

      public void setDefaultReadOnly(boolean defaultReadOnly)
      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:
      Specified by:
      setDefaultReadOnly in interface Session
      Parameters:
      defaultReadOnly - true, the default for loaded entities/proxies is read-only; false, the default for loaded entities/proxies is modifiable
      See Also:
    • isReadOnly

      public boolean isReadOnly(Object entityOrProxy)
      Description copied from interface: Session
      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:
      Specified by:
      isReadOnly in interface Session
      Parameters:
      entityOrProxy - an entity or HibernateProxy
      Returns:
      true, the entity or proxy is read-only; false, the entity or proxy is modifiable.
      See Also:
    • setReadOnly

      public void setReadOnly(Object entity, boolean readOnly)
      Description copied from interface: Session
      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:
      Specified by:
      setReadOnly in interface Session
      Parameters:
      entity - an entity or HibernateProxy
      readOnly - if true, the entity or proxy is made read-only; if false, the entity or proxy is made modifiable.
      See Also:
    • doWork

      public void doWork(Work work) throws HibernateException
      Description copied from interface: Session
      Controller for allowing users to perform JDBC related work using the Connection managed by this Session.
      Specified by:
      doWork in interface Session
      Parameters:
      work - The work to be performed.
      Throws:
      HibernateException - Generally indicates wrapped SQLException
    • afterScrollOperation

      public void afterScrollOperation()
      Specified by:
      afterScrollOperation in interface SessionImplementor
    • getJDBCContext

      public JDBCContext getJDBCContext()
      Specified by:
      getJDBCContext in interface SessionImplementor
    • getLoadQueryInfluencers

      public LoadQueryInfluencers getLoadQueryInfluencers()
      Description copied from interface: SessionImplementor
      Get the load query influencers associated with this session.
      Specified by:
      getLoadQueryInfluencers in interface SessionImplementor
      Returns:
      the load query influencers associated with this session; should never be null.
    • getEnabledFilter

      public Filter getEnabledFilter(String filterName)
      Retrieve a currently enabled filter by name.
      Specified by:
      getEnabledFilter in interface Session
      Parameters:
      filterName - The name of the filter to be retrieved.
      Returns:
      The Filter instance representing the enabled filter.
    • enableFilter

      public Filter enableFilter(String filterName)
      Enable the named filter for this current session.
      Specified by:
      enableFilter in interface Session
      Parameters:
      filterName - The name of the filter to be enabled.
      Returns:
      The Filter instance representing the enabled filter.
    • disableFilter

      public void disableFilter(String filterName)
      Disable the named filter for the current session.
      Specified by:
      disableFilter in interface Session
      Parameters:
      filterName - The name of the filter to be disabled.
    • getFilterParameterValue

      public Object getFilterParameterValue(String filterParameterName)
      Retreive the currently set value for a filter parameter.
      Specified by:
      getFilterParameterValue in interface SessionImplementor
      Parameters:
      filterParameterName - The filter parameter name in the format {FILTER_NAME.PARAMETER_NAME}.
      Returns:
      The filter parameter value.
    • getFilterParameterType

      public Type getFilterParameterType(String filterParameterName)
      Retreive the type for a given filter parrameter.
      Specified by:
      getFilterParameterType in interface SessionImplementor
      Parameters:
      filterParameterName - The filter parameter name in the format {FILTER_NAME.PARAMETER_NAME}.
      Returns:
      The filter param type
    • getEnabledFilters

      public Map getEnabledFilters()
      Return the currently enabled filters. The filter map is keyed by filter name, with values corresponding to the FilterImpl instance.
      Specified by:
      getEnabledFilters in interface SessionImplementor
      Returns:
      The currently enabled filters.
    • getFetchProfile

      public String getFetchProfile()
      Get the internal fetch profile currently associated with this session.
      Specified by:
      getFetchProfile in interface SessionImplementor
      Returns:
      The current internal fetch profile, or null if none currently associated.
    • setFetchProfile

      public void setFetchProfile(String fetchProfile)
      Set the current internal fetch profile for this session.
      Specified by:
      setFetchProfile in interface SessionImplementor
      Parameters:
      fetchProfile - The internal fetch profile name to use
    • isFetchProfileEnabled

      public boolean isFetchProfileEnabled(String name) throws UnknownProfileException
      Description copied from interface: Session
      Is a particular fetch profile enabled on this session?
      Specified by:
      isFetchProfileEnabled in interface 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
      See Also:
    • enableFetchProfile

      public void enableFetchProfile(String name) throws UnknownProfileException
      Description copied from interface: Session
      Enable a particular fetch profile on this session. No-op if requested profile is already enabled.
      Specified by:
      enableFetchProfile in interface Session
      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
      See Also:
    • disableFetchProfile

      public void disableFetchProfile(String name) throws UnknownProfileException
      Description copied from interface: Session
      Disable a particular fetch profile on this session. No-op if requested profile is already disabled.
      Specified by:
      disableFetchProfile in interface Session
      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
      See Also:
    • execute

      public Object execute(LobCreationContext.Callback callback)
      Execute the given callback, making sure it has access to a viable JDBC Connection.
      Specified by:
      execute in interface LobCreationContext
      Parameters:
      callback - The callback to execute .
      Returns:
      The LOB created by the callback.
    • getTypeHelper

      public TypeHelper getTypeHelper()
      Convenience access to the TypeHelper associated with this session's SessionFactory.

      Equivalent to calling Session.getSessionFactory().getTypeHelper()

      Specified by:
      getTypeHelper in interface Session
      Returns:
      The TypeHelper associated with this session's SessionFactory
    • getLobHelper

      public LobHelper getLobHelper()
      Retrieve this session's helper/delegate for creating LOB instances.
      Specified by:
      getLobHelper in interface Session
      Returns:
      This session's LOB helper