4

私のコントローラには、2 つのドメイン クラスを更新するアクションがあります。

2番目の更新が失敗した場合、最初の更新がロールバックされ、基本的にエラーが発生した場合、以前のすべてのアクションがロールバックされるようにします。

ここでの基本的な考え方は何ですか?

4

3 に答える 3

10

ロジックを Service に移動したくない場合 (おそらく、これらの更新の両方を実行するために複数のサービスを呼び出している可能性があるため)、 with で注釈を付けcontroller actionます@Transactional

public MyController {
 @Transactional
 def save(){
   myService.save(params)
   myOtherService.save(params)
   render "success"
 }

 ...

}
于 2014-02-24T20:22:03.300 に答える
7

すべてのビジネス ロジックを、既にトランザクション対応のサービスに移動するだけです。最初の更新アクションには 1 つのサービスを使用し、別のアクションには 2 番目のサービスを使用します。

于 2013-09-12T07:41:09.317 に答える
6

servicesを確認してください。デフォルトではトランザクション対応です。そこで更新を行うだけで、エラーが発生した場合は例外をスローしてコントローラーでキャッチします

于 2013-09-12T07:39:55.180 に答える