execute

abstract fun <T> execute(propagation: TransactionPropagation, isolation: IsolationLevel = IsolationLevel.DEFAULT, readOnly: Boolean = false, timeoutSeconds: Int? = null, block: (TransactionStatus) -> T): T

Executes a block of code within a transaction context.

Parameters

propagation

The transaction propagation behavior (e.g., REQUIRED, REQUIRES_NEW).

isolation

The isolation level to use. IsolationLevel.DEFAULT leaves the current state unchanged.

readOnly

Hint to the database for read-only optimization.

timeoutSeconds

Optional timeout in seconds. Handled differently by implementations.

block

The logic to execute within the transaction.