Interface TransactionProvider
-
- All Known Implementing Classes:
DefaultTransactionProvider
,NoTransactionProvider
,ThreadLocalTransactionProvider
public interface TransactionProvider
TheTransactionProvider
SPI can be used to implement customtransaction
behaviour that is applied when callingDSLContext.transactionResult(TransactionalCallable)
orDSLContext.transaction(TransactionalRunnable)
.A new
Configuration
copy is created from the callingDSLContext
for the scope of a single transactions. Implementors may freely add custom data toConfiguration.data()
, in order to share information betweenbegin(TransactionContext)
andcommit(TransactionContext)
orrollback(TransactionContext)
, as well as to share information with nested transactions.Implementors may freely choose whether they support nested transactions. An example implementation supporting nested transactions is
DefaultTransactionProvider
, which implements such transactions using JDBCSavepoint
s.- Author:
- Lukas Eder
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
begin(TransactionContext ctx)
Begin a new transaction.void
commit(TransactionContext ctx)
Commit a transaction.void
rollback(TransactionContext ctx)
Rollback a transaction.
-
-
-
Method Detail
-
begin
void begin(TransactionContext ctx) throws DataAccessException
Begin a new transaction.This method begins a new transaction with a
Configuration
scoped for this transaction. The resultingTransaction
object may be used by implementors to identify the transaction whencommit(TransactionContext)
orrollback(TransactionContext)
is called.- Parameters:
ctx
- the configuration scoped to this transaction and its nested transactions.- Throws:
DataAccessException
- Any exception issued by the underlying database.
-
commit
void commit(TransactionContext ctx) throws DataAccessException
Commit a transaction.- Parameters:
ctx
- the configuration scoped to this transaction and its nested transactions.- Throws:
DataAccessException
- Any exception issued by the underlying database.
-
rollback
void rollback(TransactionContext ctx) throws DataAccessException
Rollback a transaction.- Parameters:
ctx
- the configuration scoped to this transaction and its nested transactions.- Throws:
DataAccessException
- Any exception issued by the underlying database.
-
-