どんなシチュエーションで使うのか
- バッチ処理でログをDBに書き込んでいるケースなどでログは残したいけど、失敗した場合にトランザクションはロールバックしたいとか。
どうすればできるのか
- 別トランザクションにしたいメソッドまたはクラスに
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
アノテーションをつければOK
注意点
私の環境では、メソッドにこのアノテーションをつけた場合に
メソッドがpublicでないと トランザクション境界にならなかった!