トランザクション
トランザクション制御は、S2Txを利用する
http://homepage3.nifty.com/seasar/tx.html
(S2DAOからはじめたので、しばらくトランザクションのかけかたが不明だった。。。)。
トランザクションをかけたいクラスの例
public class TransSample { public void doSomeUpdate(){ S2Container container = S2ContainerFactory.create("dao/test.dicon"); CdDao dao = (CdDao)container.getComponent(CdDao.class); //...いろいろ更新 } }
diconファイルの例
j2ee.requiredTx
この場合、pointcut(メソッド)の指定は必要な模様(自動的にメソッド全部にはならない)。
このメソッドを実行すると次のようなログが出る。
DEBUG 2004-10-14 22:28:10,481 [main] トランザクションを開始しました //...いろいろ DEBUG 2004-10-14 22:28:10,891 [main] トランザクションをコミットしました
普通にメソッドが終了すると、トランザクションがコミットされる。
途中で例外が投げられると、ロールバックされる。
いやな例外を消したいときは例外を処理するaspectをかけるといいらしい。
http://seasarproject.g.hatena.ne.jp/match8/20040902