public class

ManagedSessionContext

extends Object
implements CurrentSessionContext
java.lang.Object
   ↳ org.hibernate.context.ManagedSessionContext

Class Overview

Represents a CurrentSessionContext the notion of a contextual session is managed by some external entity (generally some form of interceptor, etc). This external manager is responsible for scoping these contextual sessions appropriately binding/unbinding them here for exposure to the application through getCurrentSession() calls.

Basically exposes two interfaces.

  • First is the implementation of CurrentSessionContext which is then used by the getCurrentSession() calls. This portion is instance-based specific to the session factory owning the given instance of this impl (there will be one instance of this per each session factory using this strategy).
  • Second is the externally facing methods hasBind(SessionFactory), bind(Session), and unbind(SessionFactory) used by the external thing to manage exposure of the current session it is scoping. This portion is static to allow easy reference from that external thing.
The underlying storage of the current sessions here is a static ThreadLocal-based map where the sessions are keyed by the the owning session factory.

Summary

Public Constructors
ManagedSessionContext(SessionFactoryImplementor factory)
Public Methods
static Session bind(Session session)
Binds the given session to the current context for its session factory.
Session currentSession()
Retrieve the current session according to the scoping defined by this implementation.
static boolean hasBind(SessionFactory factory)
Check to see if there is already a session associated with the current thread for the given session factory.
static Session unbind(SessionFactory factory)
Unbinds the session (if one) current associated with the context for the given session.
Protected Methods
static Map sessionMap()
[Expand]
Inherited Methods
From class java.lang.Object
From interface org.hibernate.context.CurrentSessionContext

Public Constructors

public ManagedSessionContext (SessionFactoryImplementor factory)

Public Methods

public static Session bind (Session session)

Binds the given session to the current context for its session factory.

Parameters
session The session to be bound.
Returns
  • Any previously bound session (should be null in most cases).

public Session currentSession ()

Retrieve the current session according to the scoping defined by this implementation.

Returns
  • The current session.

public static boolean hasBind (SessionFactory factory)

Check to see if there is already a session associated with the current thread for the given session factory.

Parameters
factory The factory against which to check for a given session within the current thread.
Returns
  • True if there is currently a session bound.

public static Session unbind (SessionFactory factory)

Unbinds the session (if one) current associated with the context for the given session.

Parameters
factory The factory for which to unbind the current session.
Returns
  • The bound session if one, else null.

Protected Methods

protected static Map sessionMap ()