Save This Page
Home » hibernate-distribution-3.3.1.GA-dist » org.hibernate » context » [javadoc | source]
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).

Nested Class Summary:
protected static class  JTASessionContext.CleanupSynch  JTA transaction synch used for cleanup of the internal session map. 
Field Summary
protected final  SessionFactoryImplementor factory     
Constructor:
 public JTASessionContext(SessionFactoryImplementor factory) 
Method from org.hibernate.context.JTASessionContext Summary:
buildOrObtainSession,   currentSession,   getConnectionReleaseMode,   isAutoCloseEnabled,   isAutoFlushEnabled
Methods from java.lang.Object:
equals,   getClass,   hashCode,   notify,   notifyAll,   toString,   wait,   wait,   wait
Method from org.hibernate.context.JTASessionContext Detail:
 protected Session buildOrObtainSession() 
    Strictly provided for subclassing purposes; specifically to allow long-session support.

    This implementation always just opens a new session.

 public Session currentSession() throws HibernateException 
    {@inheritDoc}
 protected ConnectionReleaseMode getConnectionReleaseMode() 
    Mainly for subclass usage. This impl always returns after_statement.
 protected boolean isAutoCloseEnabled() 
    Mainly for subclass usage. This impl always returns true.
 protected boolean isAutoFlushEnabled() 
    Mainly for subclass usage. This impl always returns true.