FileDocCategorySizeDatePackage
Transaction.javaAPI DocHibernate 3.2.53550Fri Mar 10 11:14:22 GMT 2006org.hibernate

Transaction

public interface Transaction
Allows the application to define units of work, while maintaining abstraction from the underlying transaction implementation (eg. JTA, JDBC).

A transaction is associated with a Session and is usually instantiated by a call to Session.beginTransaction(). A single session might span multiple transactions since the notion of a session (a conversation between the application and the datastore) is of coarser granularity than the notion of a transaction. However, it is intended that there be at most one uncommitted Transaction associated with a particular Session at any time.

Implementors are not intended to be threadsafe.
see
Session#beginTransaction()
see
org.hibernate.transaction.TransactionFactory
author
Anton van Straaten

Fields Summary
Constructors Summary
Methods Summary
public voidbegin()
Begin a new transaction.

public voidcommit()
Flush the associated Session and end the unit of work (unless we are in {@link FlushMode#NEVER}.

This method will commit the underlying transaction if and only if the underlying transaction was initiated by this object.

throws
HibernateException

public booleanisActive()
Is this transaction still active?

Again, this only returns information in relation to the local transaction, not the actual underlying transaction.

return
boolean Treu if this local transaction is still active.

public voidregisterSynchronization(javax.transaction.Synchronization synchronization)
Register a user synchronization callback for this transaction.

param
synchronization The Synchronization callback to register.
throws
HibernateException

public voidrollback()
Force the underlying transaction to roll back.

throws
HibernateException

public voidsetTimeout(int seconds)
Set the transaction timeout for any transaction started by a subsequent call to begin() on this instance.

param
seconds The number of seconds before a timeout.

public booleanwasCommitted()
Check if this transaction was successfully committed.

This method could return false even after successful invocation of {@link #commit}. As an example, JTA based strategies no-op on {@link #commit} calls if they did not start the transaction; in that case, they also report {@link #wasCommitted} as false.

return
boolean True if the transaction was (unequivocally) committed via this local transaction; false otherwise.
throws
HibernateException

public booleanwasRolledBack()
Was this transaction rolled back or set to rollback only?

This only accounts for actions initiated from this local transaction. If, for example, the underlying transaction is forced to rollback via some other means, this method still reports false because the rollback was not initiated from here.

return
boolean True if the transaction was rolled back via this local transaction; false otherwise.
throws
HibernateException