Package org.hibernate
Interface Transaction
- All Known Implementing Classes:
CMTTransaction,JDBCTransaction,JTATransaction
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.
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 Also:
-
Method Summary
Modifier and TypeMethodDescriptionvoidbegin()Begin a new transaction.voidcommit()Flush the associated Session and end the unit of work (unless we are inFlushMode.MANUAL.booleanisActive()Is this transaction still active?voidregisterSynchronization(Synchronization synchronization) Register a user synchronization callback for this transaction.voidrollback()Force the underlying transaction to roll back.voidsetTimeout(int seconds) Set the transaction timeout for any transaction started by a subsequent call to begin() on this instance.booleanCheck if this transaction was successfully committed.booleanWas this transaction rolled back or set to rollback only?
-
Method Details
-
begin
Begin a new transaction.- Throws:
HibernateException
-
commit
Flush the associated Session and end the unit of work (unless we are inFlushMode.MANUAL. This method will commit the underlying transaction if and only if the underlying transaction was initiated by this object.- Throws:
HibernateException
-
rollback
Force the underlying transaction to roll back.- Throws:
HibernateException
-
wasRolledBack
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.- Returns:
- boolean True if the transaction was rolled back via this local transaction; false otherwise.
- Throws:
HibernateException
-
wasCommitted
Check if this transaction was successfully committed. This method could return false even after successful invocation ofcommit(). As an example, JTA based strategies no-op oncommit()calls if they did not start the transaction; in that case, they also reportwasCommitted()as false.- Returns:
- boolean True if the transaction was (unequivocally) committed via this local transaction; false otherwise.
- Throws:
HibernateException
-
isActive
Is this transaction still active? Again, this only returns information in relation to the local transaction, not the actual underlying transaction.- Returns:
- boolean Treu if this local transaction is still active.
- Throws:
HibernateException
-
registerSynchronization
Register a user synchronization callback for this transaction.- Parameters:
synchronization- The Synchronization callback to register.- Throws:
HibernateException
-
setTimeout
void setTimeout(int seconds) Set the transaction timeout for any transaction started by a subsequent call to begin() on this instance.- Parameters:
seconds- The number of seconds before a timeout.
-