org.hibernate.context
public class: JTASessionContext [javadoc |
source]
java.lang.Object
org.hibernate.context.JTASessionContext
All Implemented Interfaces:
CurrentSessionContext
An implementation of
CurrentSessionContext which scopes the notion
of a current session to a JTA transaction. Because JTA gives us a nice
tie-in to clean up after ourselves, this implementation will generate
Sessions as needed provided a JTA transaction is in effect. If a session
is not already associated with the current JTA transaction at the time
#currentSession() is called, a new session will be opened and it
will be associated with that JTA transaction.
Note that the sessions returned from this method are automatically configured with
both the
auto-flush and
auto-close attributes set to
true, meaning that the Session will be automatically flushed and closed
as part of the lifecycle for the JTA transaction to which it is associated.
Additionally, it will also be configured to aggressively release JDBC
connections after each statement is executed. These settings are governed
by the
#isAutoFlushEnabled() ,
#isAutoCloseEnabled() , and
#getConnectionReleaseMode() methods; these are provided (along with
the
#buildOrObtainSession() method) for easier subclassing for custom
JTA-based session tracking logic (like maybe long-session semantics).