[Seasar-user:18002] [S2Container]RequiredInterceptorの仕様の確認
kubo
[E-MAIL ADDRESS DELETED]
2009年 7月 15日 (水) 16:30:43 JST
久保(jflute)です。
「s2extension-2.4.38」の
org.seasar.extension.tx.RequiredInterceptor
の仕様の確認です。
JavaDocコメント抜粋:
/= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
このインターセプタが適用されたメソッドが呼び出された際に
トランザクションが開始されていない場合は、トランザクションが開始されます。
メソッドが終了(例外をスローした場合も) した後、開始したトランザクションは
完了 (コミットまたはロールバック) されます。
メソッドが呼び出された際に、既にトランザクションが開始されていた場合は何もしません。
= = = = = = = = = =/
既にトランザクションが開始されていた場合に何もしないと
ありますが、利用されているTransactionCallbackを見ると、
txRulesが設定されていない場合には、
setRollbackOnly()が呼び出されるように見受けられますが、
これは仕様でしょうか?
http://s2container.seasar.org/2.4/ja/tx.html
を見ると、例外発生時の動作ということで共通仕様的に
書かれているので、仕様かと思われますが、
JavaDocコメントに
「既にトランザクションが開始されていた場合はコミットや
ロールバックはしないけど、txRulesが設定されていなければ
setRollbackOnly()をする」という感じの記述があった方が
いいように思えます。
(「何もしません」というのが誤解を生むかもしれないので)
#
# とある調査をしている段階で疑問に思った点を
# 確認したいと思い質問させて頂きました。
#
Seasar-user メーリングリストの案内