このアノテーションは、インタフェース、クラス、あるいはメソッドがトランザクションであることを指定する。デフォルトのトランザクションセマンティクスは、read/write、PROPAGATION_REQUIRED、ISOLATION_DEFAULT、TIMEOUT_DEFAULTで、ExceptionではなくRuntimeException発生時にロールバックするというものである。
アノテーションのオプションのプロパティを使えばトランザクションの設定を変更することができる。
プロパティ | 型 | 説明 |
propagation | enum: Propagation | オプションのプロパゲーション設定(デフォルトは、PROPAGATION_REQUIRED) |
isolation | enum: Isolation | オプションのアイソレーションレベル(デフォルトはISOLATION_DEFAULT) |
readOnly | boolean | read/writeあるいはリードオンリートランザクション(デフォルトはfalseもしくはread/write) |
rollbackFor | Classオブジェクトの配列。Trowableからの派生クラスであること。 | オプションで指定する、発生したときにロールバックする例外クラスの配列。デフォルトでは、チェック済みの例外ではロールバックせず、未チェックの(RuntimeExceptionから派生した)例外の場合にロールバック |
rollbackForClassname | クラス名文字列の配列。クラスは、Trowableの派生であること。 | オプションで指定する、発生したときにロールバックさせる例外クラスの名前の配列 |
noRollbackFor | Classオブジェクトの配列。Trowableからの派生であること。 | オプションで指定するロールバックさせない例外クラスの配列。 |
noRollbackForClassname | クラス名文字列の配列。Trowableからの派生であること。 | オプションで指定する、発生したときにロールバックさせない例外のクラス名の配列。 |