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)
,
TransactionCallbackWithoutResult
static 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
.