6

grails のドキュメントによると、サービスはデフォルトでトランザクション対応です。Transactionalしかし、属性を使用することで、トランザクションをよりきめ細かく制御できることはわかっています。

私が次のようなサービスを持っている場合

class MyService {

    @Transactional(...config...)
    def method1() { }

    def method2() { }

}

私の理解では、この場合、method1はトランザクションになりますが、そうでmethod2はありません。

私が持っている場合

class MyService {

    def method1() { }
    def method2() { }

}

次に、両方method1ともmethod2トランザクションになります。

これは正しいです?

4

2 に答える 2

1

次のように、ドメインの閉鎖を使用して Grails のデフォルトのトランザクション管理を無効にwithTransactionし、トランザクションを手動で管理できます。

Account.withTransaction { status ->
    try {
        //write your code or business logic here
    } catch (Exception e) {
        status.setRollbackOnly()
    }
}

例外がスローされた場合、トランザクションはロールバックされます。

于 2014-10-11T05:23:33.970 に答える