(Quick Reference)
withTransaction
Purpose
Allows programmatic transactions using Spring's Transaction Abstraction and a block.
Examples
Account.withTransaction { status ->
def source = Account.get(params.from)
def dest = Account.get(params.to) def amount = params.amount.toInteger()
if(source.active) {
source.balance -= amount
if(dest.active) {
dest.amount += amount
}
else {
status.setRollbackOnly()
}
}
}
Description
The
withTransaction
method uses a block or closure that gets passed Spring
TransactionStatus object. The
TransactionStatus
object can be used to programmatically control rollback of the transaction.
Refer to the user guide section of
Programmatic Transactions for more information.