public interface TransactionOperations
TransactionTemplate. Not often used directly,
but a useful option to enhance testability, as it can easily be
mocked or stubbed.| Modifier and Type | Method and Description |
|---|---|
<T> T |
execute(TransactionCallback<T> action)
Execute the action specified by the given callback object within a transaction.
|
default void |
executeWithoutResult(Consumer<TransactionStatus> action)
Execute the action specified by the given
Runnable within a transaction. |
static TransactionOperations |
withoutTransaction()
Return an implementation of the
TransactionOperations interface which
executes a given TransactionCallback without an actual transaction. |
@Nullable <T> T execute(TransactionCallback<T> action) throws TransactionException
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.
action - the callback object that specifies the transactional actionnull if noneTransactionException - in case of initialization, rollback, or system errorsRuntimeException - if thrown by the TransactionCallbackexecuteWithoutResult(Consumer)default void executeWithoutResult(Consumer<TransactionStatus> action) throws TransactionException
Runnable within a transaction.
If you need to return an object from the callback or access the
TransactionStatus from within the callback,
use execute(TransactionCallback) instead.
This variant is analogous to using a TransactionCallbackWithoutResult
but with a simplified signature for common cases - and conveniently usable with
Java 8 lambda expressions.
action - the Runnable that specifies the transactional actionTransactionException - in case of initialization, rollback, or system errorsRuntimeException - if thrown by the Runnableexecute(TransactionCallback),
TransactionCallbackWithoutResultstatic TransactionOperations withoutTransaction()
TransactionOperations interface which
executes a given TransactionCallback without 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 TransactionOperations implementation with actual
transaction processing, use TransactionTemplate with an appropriate
PlatformTransactionManager.