インタフェース Transaction

既知の実装クラスのリスト:
NoTransaction

public interface Transaction

トランザクションを表すインタフェースです。
トランザクションを制御するためのメソッドを持っています。

トランザクション制御コード例
※現在起動中のトランザクションと別に新規にトランザクション処理を起動する場合
 
 EntityManager em = ...
 Entity e = ...
 
 //新規にトランザクションを起動
 Transaction.requiresNew(t -> {
   
   em.insert(e);
   
   //コミット成功時に実行する処理を追加
   t.afterCommit(() -> {
     System.out.println("committed");
   });
   
   :
   :
   
 });
 
  • フィールドの概要

    フィールド
    修飾子とタイプ
    フィールド
    説明
    static final Transaction
    トランザクションがない状態を表すTransactionのインスタンスです。
  • メソッドの概要

    修飾子とタイプ
    メソッド
    説明
    void
    このトランザクションのcommit、rollbackを監視するリスナーを登録します。
    default void
    このトランザクションがcommitされた場合、funcを実行します。
    default void
    このトランザクションがrollbackされた場合、funcを実行します。
    void
    トランザクションをコミットします。
    このトランザクションコンテキストに紐づけられている特定の属性を取得します。
    現在の実行コンテキストに関連しているトランザクションのインスタンスを取得します。
    トランザクションの状態を取得します。
    boolean
    このトランザクションがReadOnlyとしてマークされているかどうかを取得します。
    boolean
    このトランザクションがsetRollbackOnlyされているかどうかを取得します。
    static void
    トランザクションをreadOnlyモードで起動します。
    static <R> R
    トランザクションをreadOnlyモードで起動します。
    このトランザクションコンテキストに紐づけられている特定の属性を削除します。
    static void
    トランザクションが開始していない場合はトランザクションを起動し、funcを実行します。
    static <R> R
    トランザクションが開始していない場合はトランザクションを起動し、funcを実行します。
    static void
    新規にトランザクションを起動し、funcを実行します。
    static <R> R
    新規にトランザクションを起動し、funcを実行します。
    static void
    トランザクションをreadOnlyモードで新規に起動します。
    static <R> R
    トランザクションをreadOnlyモードで新規に起動します。
    void
    トランザクションをロールバックします。
    void
    setAttribute(Object key, Object value)
    このトランザクションのコンテキストに特定の属性を紐づけます。
    void
    このトランザクションをロールバックするものとしてマークします。
    static void
    with(Propagation propagation, Consumer<Transaction> func)
    指定のpropagationで、トランザクションを起動しfuncを実行します。
    static <R> R
    with(Propagation propagation, Function<Transaction,R> func)
    指定のpropagationで、トランザクションを起動しfuncを実行します。
    static void
    指定のoptionで、トランザクションを起動しfuncを実行します。
    static <R> R
    指定のoptionで、トランザクションを起動しfuncを実行します。
  • フィールド詳細

    • NO_TRANSACTION

      static final Transaction NO_TRANSACTION
      トランザクションがない状態を表すTransactionのインスタンスです。 トランザクションがまだ開始されていない状態、もしくはトランザクションがサスペンドされている場合に当インスタンスが返却されます。
      getStatus()は常にTransactionStatus.NONEを返します。
      setAttribute(Object, Object)などのその他のトランザクション制御メソッドはなにも処理しません。
  • メソッドの詳細

    • getCurrent

      static Transaction getCurrent()
      現在の実行コンテキストに関連しているトランザクションのインスタンスを取得します。 もし、トランザクションが開始されていない場合は、NO_TRANSACTIONが返却されます。
      戻り値:
    • commit

      void commit()
      トランザクションをコミットします。
    • rollback

      void rollback()
      トランザクションをロールバックします。
    • setRollbackOnly

      void setRollbackOnly()
      このトランザクションをロールバックするものとしてマークします。 setRollbackOnlyされたトランザクションは最終的にはロールバックされます。
    • isRollbackOnly

      boolean isRollbackOnly()
      このトランザクションがsetRollbackOnlyされているかどうかを取得します。
      戻り値:
      setRollbackOnlyの場合true
    • isReadOnly

      boolean isReadOnly()
      このトランザクションがReadOnlyとしてマークされているかどうかを取得します。
      戻り値:
    • getStatus

      TransactionStatus getStatus()
      トランザクションの状態を取得します。
      戻り値:
    • setAttribute

      void setAttribute(Object key, Object value)
      このトランザクションのコンテキストに特定の属性を紐づけます。
      パラメータ:
      key - 属性のキー
      value - 属性の値
    • getAttribute

      Object getAttribute(Object key)
      このトランザクションコンテキストに紐づけられている特定の属性を取得します。 同一トランザクション内でsetAttribute()したものがあれば、その値が取得できます。
      パラメータ:
      key - 属性のキー
      戻り値:
      属性の値
    • removeAttribute

      Object removeAttribute(Object key)
      このトランザクションコンテキストに紐づけられている特定の属性を削除します。
      パラメータ:
      key - 属性のキー
      戻り値:
      削除された値
    • addTransactionListener

      void addTransactionListener(TransactionListener listener)
      このトランザクションのcommit、rollbackを監視するリスナーを登録します。
      パラメータ:
      listener -
    • afterCommit

      default void afterCommit(Runnable func)
      このトランザクションがcommitされた場合、funcを実行します。 funcの引数にはこのトランザクションが渡されます。
      パラメータ:
      func -
    • afterRollback

      default void afterRollback(Runnable func)
      このトランザクションがrollbackされた場合、funcを実行します。 funcの引数にはこのトランザクションが渡されます。
      パラメータ:
      func -
    • required

      static void required(Consumer<Transaction> func)
      トランザクションが開始していない場合はトランザクションを起動し、funcを実行します。 トランザクション制御方法は、TransactionOptionのデフォルトが適用されます。
      パラメータ:
      func -
    • required

      static <R> R required(Function<Transaction,R> func)
      トランザクションが開始していない場合はトランザクションを起動し、funcを実行します。 トランザクション制御方法は、TransactionOptionのデフォルトが適用されます。
      パラメータ:
      func -
      戻り値:
      funcが返却する値
    • requiresNew

      static void requiresNew(Consumer<Transaction> func)
      新規にトランザクションを起動し、funcを実行します。 トランザクション制御方法は、TransactionOptionのデフォルトが適用されます。
      パラメータ:
      func -
    • requiresNew

      static <R> R requiresNew(Function<Transaction,R> func)
      新規にトランザクションを起動し、funcを実行します。 トランザクション制御方法は、TransactionOptionのデフォルトが適用されます。
      パラメータ:
      func -
      戻り値:
      funcが返却する値
    • readOnly

      static void readOnly(Consumer<Transaction> func)
      トランザクションをreadOnlyモードで起動します。 ただし、すでにトランザクションが開始されている場合、 新規にトランザクションは開始せず既存のトランザクションをそのまま利用します。 これは、
      TransactionOption.propagation=REQUIRED
      TransactionOption.readOnly=true
      でトランザクションを起動することを示します。
      readOnlyモードでトランザクションが新規に起動した場合、 そのトランザクションは最終的にロールバックされます。
      パラメータ:
      func -
    • readOnly

      static <R> R readOnly(Function<Transaction,R> func)
      トランザクションをreadOnlyモードで起動します。 ただし、すでにトランザクションが開始されている場合、 新規にトランザクションは開始せず既存のトランザクションをそのまま利用します。 これは、
      TransactionOption.propagation=REQUIRED
      TransactionOption.readOnly=true
      でトランザクションを起動することを示します。
      readOnlyモードでトランザクションが新規に起動した場合、 そのトランザクションは最終的にロールバックされます。
      パラメータ:
      func -
      戻り値:
      funcが返却する値
    • requiresNewReadOnly

      static void requiresNewReadOnly(Consumer<Transaction> func)
      トランザクションをreadOnlyモードで新規に起動します。 これは、
      TransactionOption.propagation=REQUIRES_NEW
      TransactionOption.readOnly=true
      でトランザクションを起動することを示します。
      readOnlyモードでトランザクションが新規に起動した場合、 そのトランザクションは最終的にロールバックされます。
      パラメータ:
      func -
    • requiresNewReadOnly

      static <R> R requiresNewReadOnly(Function<Transaction,R> func)
      トランザクションをreadOnlyモードで新規に起動します。 これは、
      TransactionOption.propagation=REQUIRES_NEW
      TransactionOption.readOnly=true
      でトランザクションを起動することを示します。
      readOnlyモードでトランザクションが新規に起動した場合、 そのトランザクションは最終的にロールバックされます。
      パラメータ:
      func -
      戻り値:
      funcが返却する値
    • with

      static void with(Propagation propagation, Consumer<Transaction> func)
      指定のpropagationで、トランザクションを起動しfuncを実行します。
      パラメータ:
      propagation -
      func -
    • with

      static <R> R with(Propagation propagation, Function<Transaction,R> func)
      指定のpropagationで、トランザクションを起動しfuncを実行します。
      パラメータ:
      propagation -
      func -
      戻り値:
      funcが返却する値
    • with

      static void with(TransactionOption option, Consumer<Transaction> func)
      指定のoptionで、トランザクションを起動しfuncを実行します。
      パラメータ:
      option -
      func -
    • with

      static <R> R with(TransactionOption option, Function<Transaction,R> func)
      指定のoptionで、トランザクションを起動しfuncを実行します。
      パラメータ:
      option -
      func -
      戻り値:
      funcが返却する値