Class ManagedSessionContext

java.lang.Object
org.hibernate.context.spi.AbstractCurrentSessionContext
org.hibernate.context.internal.ManagedSessionContext
All Implemented Interfaces:
Serializable, CurrentSessionContext

public class ManagedSessionContext extends AbstractCurrentSessionContext
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 SessionFactory.getCurrentSession() calls.

Basically exposes two interfaces.

The underlying storage of the current sessions here is a static ThreadLocal-based map where the sessions are keyed by the owning session factory.

See Also:
  • Constructor Details

    • ManagedSessionContext

      public ManagedSessionContext(SessionFactoryImplementor factory)
      Constructs a new ManagedSessionContext
      Parameters:
      factory - The factory this context will service
  • Method Details

    • currentSession

      public Session currentSession()
      Description copied from interface: CurrentSessionContext
      Retrieve the current session according to the scoping defined by this implementation.
      Returns:
      The current session.
    • hasBind

      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.
    • bind

      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).
    • unbind

      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.
    • sessionMap

      protected static Map<SessionFactory,Session> sessionMap()