[Seasar-user:7151] Re: [Teeda] 特定の例外スロー時だけはコミットしたい

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2007年 4月 9日 (月) 22:00:28 JST


小林 (koichik) です.

Date:    Mon, 09 Apr 2007 21:04:56 +0900
From:    松崎 学 <[E-MAIL ADDRESS DELETED]>
To:       [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:7149] [Teeda] 特定の例外スロー時だけはコミットしたい

> PageクラスのdoXxxメソッドで、ある特定の例外をスローした時だけは
> テーブルの変更をコミットしたいのですが可能でしょうか?

独自のトランザクション制御用インターセプタを
dicon に定義すれば可能です.

S2Tx のインターセプタは,例外が発生したときの動作を
カスタマイズできるようになっています.

http://s2container.seasar.org/ja/tx.html#Exception

上記ドキュメントの例のように app.dicon 等に
RequiredInterceptor を定義して,コミットしたい例外を
addCommitRule() で登録し,通常の requiredTx に代えて
そのインターセプタを指定してアスペクトを設定
してください.

addCommitRule() を使った例としては,S2 の配布
ファイルの s2-extension/src/main/resources にある
ejbtx.dicon も参考にどうぞ.



--
<signature>
   <name>Koichi Kobayashi</name>
   <e-mail>[E-MAIL ADDRESS DELETED]</e-mail>
</signature>




Seasar-user メーリングリストの案内