org.hibernate.context
public class: ThreadLocalSessionContext [javadoc |
source]
java.lang.Object
org.hibernate.context.ThreadLocalSessionContext
All Implemented Interfaces:
CurrentSessionContext
A
CurrentSessionContext impl which scopes the notion of current
session by the current thread of execution. Unlike the JTA counterpart,
threads do not give us a nice hook to perform any type of cleanup making
it questionable for this impl to actually generate Session instances. In
the interest of usability, it was decided to have this default impl
actually generate a session upon first request and then clean it up
after the
org.hibernate.Transaction associated with that session
is committed/rolled-back. In order for ensuring that happens, the sessions
generated here are unusable until after
Session#beginTransaction()
has been called. If
close() is called on a session managed by
this class, it will be automatically unbound.
Additionally, the static
#bind and
#unbind methods are
provided to allow application code to explicitly control opening and
closing of these sessions. This, with some from of interception,
is the preferred approach. It also allows easy framework integration
and one possible approach for implementing long-sessions.
The
#buildOrObtainSession ,
#isAutoCloseEnabled ,
#isAutoFlushEnabled ,
#getConnectionReleaseMode , and
#buildCleanupSynch methods are all provided to allow easy
subclassing (for long-running session scenarios, for example).
| Field Summary |
|---|
| protected final SessionFactoryImplementor | factory | |
| Method from org.hibernate.context.ThreadLocalSessionContext Summary: |
|---|
|
bind, buildCleanupSynch, buildOrObtainSession, currentSession, getConnectionReleaseMode, getFactory, isAutoCloseEnabled, isAutoFlushEnabled, sessionMap, unbind, wrap |