2016-04-20 8 views
3

scope.complete()を呼び出してトランザクションをロールバックすることはできますか?この場合ネストされたトランザクションは機能しますか?他の選択肢もありますか?私はMyServiceを正しく呼び出すためにscope.completeを追加することを余儀なくされています。しかし、私は最後にトランザクションをロールバックしたい。transaction.complete()を呼び出した後にトランザクションをロールバックする

答えて

2

ネストされたスコープを持つことができます。すべてのスコープは、トランザクションが完了するまで完了する必要があります。スコープ!=トランザクション。

したがって、内部スコープは完了し、外部スコープはロールバックできます。それは実際の取引をロールバックします。

2

いいえ、それはトランザクションの仕組みではありません。トランザクションを完了すると、そのスコープは閉じられ、別の場所でトランザクションを再利用することはできません。また、トランザクションが完了すると、ロールバックすることはできません。

両方のトランザクションを同じスコープに入れて、トランザクションを完了したりロールバックしたりする必要があります。

1

トランザクションのACIDプロパティの「耐久性」部分では、これを許可しません。 コミットされたトランザクションはロールバックできません。 代わりに、同じトランザクションスコープから "BillImportProxy.ImportPendingUtilityBills"メソッドを呼び出します。

関連する問題