nested
Executes the given block within a nested transaction scope.
If a transaction is already active, a savepoint is created. Upon successful completion of the block, the savepoint is released. If an exception occurs, the transaction is rolled back to the savepoint. If no transaction is active, a new one is started similar to required.
Inside the block, manual transaction operations are not accessible as the receiver is restricted to OctaviusSessionOperations. A return out of the block does not compile either - use return@nested, since an early exit would otherwise slip past the release and the rollback alike and leave the savepoint standing.
Return
The result of the block.
Parameters
block
The block of code to execute.