org.hibernate.transaction
Class JTATransaction

java.lang.Object
  extended byorg.hibernate.transaction.JTATransaction
All Implemented Interfaces:
Transaction

public class JTATransaction
extends Object
implements Transaction

Implements a basic transaction strategy for JTA transactions. Instances check to see if there is an existing JTA transaction. If none exists, a new transaction is started. If one exists, all work is done in the existing context. The following properties are used to locate the underlying UserTransaction:

hibernate.jndi.urlJNDI initial context URL
hibernate.jndi.classJNDI provider class
jta.UserTransactionJNDI name

Author:
Gavin King

Constructor Summary
JTATransaction(InitialContext context, String utName, JDBCContext jdbcContext, TransactionFactory.Context transactionContext)
           
 
Method Summary
 void begin()
          Begin a new transaction.
 void commit()
          Flush the associated Session and end the unit of work.
 boolean isActive()
          Is this transaction still active?
 void registerSynchronization(Synchronization sync)
          Register a user synchronization callback for this transaction
 void rollback()
          Force the underlying transaction to roll back.
 void setTimeout(int seconds)
          Set the transaction timeout for any transaction started by a subsequent call to begin() on this instance.
 boolean wasCommitted()
          Check if this transaction was successfully committed.
 boolean wasRolledBack()
          Was this transaction rolled back or set to rollback only?
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JTATransaction

public JTATransaction(InitialContext context,
                      String utName,
                      JDBCContext jdbcContext,
                      TransactionFactory.Context transactionContext)
Method Detail

begin

public void begin()
           throws HibernateException
Description copied from interface: Transaction
Begin a new transaction.

Specified by:
begin in interface Transaction
Throws:
HibernateException

commit

public void commit()
            throws HibernateException
Description copied from interface: Transaction
Flush the associated Session and end the unit of work. This method will commit the underlying transaction if and only if the transaction was initiated by this object.

Specified by:
commit in interface Transaction
Throws:
HibernateException

rollback

public void rollback()
              throws HibernateException
Description copied from interface: Transaction
Force the underlying transaction to roll back.

Specified by:
rollback in interface Transaction
Throws:
HibernateException

wasRolledBack

public boolean wasRolledBack()
                      throws TransactionException
Description copied from interface: Transaction
Was this transaction rolled back or set to rollback only?

Specified by:
wasRolledBack in interface Transaction
Returns:
boolean
Throws:
TransactionException

wasCommitted

public boolean wasCommitted()
                     throws TransactionException
Description copied from interface: Transaction
Check if this transaction was successfully committed. This method could return false even after successful invocation of commit().

Specified by:
wasCommitted in interface Transaction
Returns:
boolean
Throws:
TransactionException

isActive

public boolean isActive()
                 throws TransactionException
Description copied from interface: Transaction
Is this transaction still active?

Specified by:
isActive in interface Transaction
Returns:
boolean
Throws:
TransactionException

registerSynchronization

public void registerSynchronization(Synchronization sync)
                             throws HibernateException
Description copied from interface: Transaction
Register a user synchronization callback for this transaction

Specified by:
registerSynchronization in interface Transaction
Throws:
HibernateException

setTimeout

public void setTimeout(int seconds)
Description copied from interface: Transaction
Set the transaction timeout for any transaction started by a subsequent call to begin() on this instance.

Specified by:
setTimeout in interface Transaction