org.springframework.transaction.support
Interface CallbackPreferringPlatformTransactionManager

All Superinterfaces:
PlatformTransactionManager
All Known Implementing Classes:
WebSphereUowTransactionManager

public interface CallbackPreferringPlatformTransactionManager
extends PlatformTransactionManager

Extension of the PlatformTransactionManager interface, exposing a method for executing a given callback within a transaction.

Implementors of this interface automatically express a preference for callbacks over programmatic getTransaction, commit and rollback calls. Calling code may check whether a given transaction manager implements this interface to choose to prepare a callback instead of explicit transaction demarcation control.

Spring's TransactionTemplate and TransactionInterceptor detect and use this PlatformTransactionManager variant automatically.

Since:
2.0
Author:
Juergen Hoeller
See Also:
TransactionTemplate, TransactionInterceptor

Method Summary
<T> T
execute(TransactionDefinition definition, TransactionCallback<T> callback)
          Execute the action specified by the given callback object within a transaction.
 
Methods inherited from interface org.springframework.transaction.PlatformTransactionManager
commit, getTransaction, rollback
 

Method Detail

execute

<T> T execute(TransactionDefinition definition,
              TransactionCallback<T> callback)
          throws TransactionException
Execute the action specified by the given callback object within a transaction.

Allows for returning a result object created within the transaction, that is, a domain object or a collection of domain objects. A RuntimeException thrown by the callback is treated as a fatal exception that enforces a rollback. Such an exception gets propagated to the caller of the template.

Parameters:
definition - the definition for the transaction to wrap the callback in
callback - the callback object that specifies the transactional action
Returns:
a result object returned by the callback, or null if none
Throws:
TransactionException - in case of initialization, rollback, or system errors
RuntimeException - if thrown by the TransactionCallback