The Grails Framework 2.4.4

See the light - agile, industrial strength, rapid web application development made easy

(Quick Reference) # withTransaction ## Purpose Allows programmatic transactions using Spring's Transaction abstraction. ## Examples

    Account.withTransaction { status ->    def source = Account.get(params.from)
        def dest = Account.get(params.to)    int amount = params.amount.toInteger()
        if (source.active) {
            source.balance -= amount        if (dest.active) {
                dest.amount += amount
            }
            else {
                status.setRollbackOnly()
            }
        }
    }
Named arguments may optionally be passed as an argument to control attributes of the transaction.

    // the keys in the Map must correspond to properties
    // of org.springframework.transaction.support.DefaultTransactionDefinitionAccount.withTransaction([propagationBehavior: TransactionDefinition.PROPAGATION_REQUIRES_NEW,
                             isolationLevel: TransactionDefinition.ISOLATION_REPEATABLE_READ]) {
        // …
    }
## Description The `withTransaction` method accepts a Closure with a TransactionStatus argument. 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. | Quick Reference (hide)