Interface TransactionCallback<T>
- Type Parameters:
T
- the result type
- All Known Implementing Classes:
TransactionCallbackWithoutResult
- Functional Interface:
- This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
Callback interface for transactional code. Used with
TransactionTemplate
's
execute
method, often as anonymous class within a method implementation.
Typically used to assemble various calls to transaction-unaware data access
services into a higher-level service method with transaction demarcation. As an
alternative, consider the use of declarative transaction demarcation (for example, through
Spring's Transactional
annotation).
- Since:
- 17.03.2003
- Author:
- Juergen Hoeller
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptiondoInTransaction
(TransactionStatus status) Gets called byTransactionTemplate.execute(org.springframework.transaction.support.TransactionCallback<T>)
within a transactional context.
-
Method Details
-
doInTransaction
Gets called byTransactionTemplate.execute(org.springframework.transaction.support.TransactionCallback<T>)
within a transactional context. Does not need to care about transactions itself, although it can retrieve and influence the status of the current transaction via the given status object, for example, setting rollback-only.Allows for returning a result object created within the transaction, i.e. a domain object or a collection of domain objects. A RuntimeException thrown by the callback is treated as application exception that enforces a rollback. Any such exception will be propagated to the caller of the template, unless there is a problem rolling back, in which case a TransactionException will be thrown.
- Parameters:
status
- associated transaction status- Returns:
- a result object, or
null
- See Also:
-