[Seasar-user:17006] Re: [S2JDBC]トランザクションについて

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2009年 2月 27日 (金) 16:00:16 JST


小林 (koichik) です.

Date:    Fri, 27 Feb 2009 15:31:25 +0900
From:    Shinzo SAITO <[E-MAIL ADDRESS DELETED]>
To:      [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:17005] [S2JDBC]トランザクションについて

> このように、Serviceクラスの複数のメソッドをひとつのトランザクションでくくりたいときの記述方法を教えていただけますでしょうか。

何も記述する必要はありません.
SAStruts の場合,Dolteng で作成したプロジェクトや
SAStruts チュートリアルをベースにしたプロジェクトで
あれば,Action がトランザクション境界となります.

http://sastruts.seasar.org/featureReference.html#Transaction

そのため,Action のメソッドから呼び出した Service は
全て同じトランザクションの中で実行されます.

> ところで、ロールバックに関してですが、当初、上記のソース例で行きますと、catch節内に
> userTransaction.rollback();
> を記述していましたが、これも例外が発生しています。ソースを追っていきますと、どうも、例外が発生した場合は自動でロールバックするようになっているみたいですが、その認識で問題ないでしょうか?つまり、userTransaction.rollback();をいちいち記載しなくても、例外を発生させておけば、ロールバックは自動でしてくれるという認識です。ちなみに、DataAccessExceptionはRuntimeExceptionを継承しています。

そうなります.

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


-- 
<component name="koichik">
    <property name="fullName">"Koichi Kobayashi"</property>
    <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
    <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>



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