[Seasar-user:11885] Transaction境界を設定したコンポーネントが階層的に呼び出された場合

Mitsutaka Sato [E-MAIL ADDRESS DELETED]
2007年 12月 3日 (月) 17:48:55 JST


佐藤と申します。
いつもお世話になっております。

HogeService, FugaService の executeメソッドに j2ee.requiredTxが設定されている(aspect)状況下で、

========================
Class HogeService {

 private FugaService fugaService;

  public void execute() {
    try {
      fugaService.execute();
    } catch (Exception e) {
      log.info(e);
    }
  }

}
========================

上記のように HogeService#execute のなかで fugaService#execute を呼び出していて、
fugaService#executeでExceptionが発生した場合、
トランザクションはコミットされます。

これは、HogeService#executeがトランザクション境界になっているので、fugaServiceで
Exceptionが発生しても、HogeServiceでcatchしているのでトランザクションはコミットされる
ということになるのでしょうか?

このケースでトランザクションがロールバックされるような方法はないでしょうか?
(訳あってHogeService内でExceptionはキャッチしたい。)
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: http://ml.seasar.org/archives/seasar-user/attachments/20071203/85be6207/attachment-0003.html 


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