public class ManagedSessionContext extends AbstractCurrentSessionContext
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. SessionFactory.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).
hasBind(org.hibernate.SessionFactory)
, bind(org.hibernate.Session)
,
and unbind(org.hibernate.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.
ThreadLocal
-based map where the sessions are keyed by the
the owning session factory.Constructor and Description |
---|
ManagedSessionContext(SessionFactoryImplementor factory)
Constructs a new ManagedSessionContext
|
Modifier and Type | Method and Description |
---|---|
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.
|
protected static Map<SessionFactory,Session> |
sessionMap() |
static Session |
unbind(SessionFactory factory)
Unbinds the session (if one) current associated with the context for the
given session.
|
baseSessionBuilder, factory, validateExistingSession
public ManagedSessionContext(SessionFactoryImplementor factory)
factory
- The factory this context will servicepublic Session currentSession()
CurrentSessionContext
public static boolean hasBind(SessionFactory factory)
factory
- The factory against which to check for a given session
within the current thread.public static Session bind(Session session)
session
- The session to be bound.public static Session unbind(SessionFactory factory)
factory
- The factory for which to unbind the current session.protected static Map<SessionFactory,Session> sessionMap()
Copyright © 2001-2017 Red Hat, Inc. All Rights Reserved.