Interface TransactionOperations
- All Known Implementing Classes:
 TransactionTemplate
TransactionTemplate. Not often used directly,
 but a useful option to enhance testability, as it can easily be
 mocked or stubbed.- Since:
 - 2.0.4
 - Author:
 - Juergen Hoeller
 
- 
Method Summary
Modifier and TypeMethodDescription<T> Texecute(TransactionCallback<T> action) Execute the action specified by the given callback object within a transaction.default voidExecute the action specified by the givenRunnablewithin a transaction.static TransactionOperationsReturn an implementation of theTransactionOperationsinterface which executes a givenTransactionCallbackwithout an actual transaction. 
- 
Method Details
- 
execute
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:
 action- the callback object that specifies the transactional action- Returns:
 - a result object returned by the callback, or 
nullif none - Throws:
 TransactionException- in case of initialization, rollback, or system errorsRuntimeException- if thrown by the TransactionCallback- See Also:
 
 - 
executeWithoutResult
Execute the action specified by the givenRunnablewithin a transaction.If you need to return an object from the callback or access the
TransactionStatusfrom within the callback, useexecute(TransactionCallback)instead.This variant is analogous to using a
TransactionCallbackWithoutResultbut with a simplified signature for common cases - and conveniently usable with Java 8 lambda expressions.- Parameters:
 action- the Runnable that specifies the transactional action- Throws:
 TransactionException- in case of initialization, rollback, or system errorsRuntimeException- if thrown by the Runnable- Since:
 - 5.2
 - See Also:
 
 - 
withoutTransaction
Return an implementation of theTransactionOperationsinterface which executes a givenTransactionCallbackwithout an actual transaction.Useful for testing: The behavior is equivalent to running with a transaction manager with no actual transaction (PROPAGATION_SUPPORTS) and no synchronization (SYNCHRONIZATION_NEVER).
For a
TransactionOperationsimplementation with actual transaction processing, useTransactionTemplatewith an appropriatePlatformTransactionManager. 
 -