Interface Transaction

All Known Implementing Classes:
NoTransaction

public interface Transaction

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

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

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

    Modifier and Type
    Method
    Description
    void
    このトランザクションのcommit、rollbackを監視するリスナーを登録します。
    default void
    このトランザクションがcommitされた場合、funcを実行します。 funcの引数にはこのトランザクションが渡されます。
    default void
    このトランザクションがrollbackされた場合、funcを実行します。 funcの引数にはこのトランザクションが渡されます。
    void
    トランザクションをコミットします。
    このトランザクションコンテキストに紐づけられている特定の属性を取得します。 同一トランザクション内でsetAttribute()したものがあれば、その値が取得できます。
    現在の実行コンテキストに関連しているトランザクションのインスタンスを取得します。 もし、トランザクションが開始されていない場合は、NO_TRANSACTIONが返却されます。
    トランザクションの状態を取得します。
    boolean
    このトランザクションがReadOnlyとしてマークされているかどうかを取得します。
    boolean
    このトランザクションがsetRollbackOnlyされているかどうかを取得します。
    static void
    トランザクションをreadOnlyモードで起動します。 ただし、すでにトランザクションが開始されている場合、 新規にトランザクションは開始せず既存のトランザクションをそのまま利用します。 これは、
    TransactionOption.propagation=REQUIRED
    TransactionOption.readOnly=true
    でトランザクションを起動することを示します。
    readOnlyモードでトランザクションが新規に起動した場合、 そのトランザクションは最終的にロールバックされます。
    static <R> R
    トランザクションをreadOnlyモードで起動します。 ただし、すでにトランザクションが開始されている場合、 新規にトランザクションは開始せず既存のトランザクションをそのまま利用します。 これは、
    TransactionOption.propagation=REQUIRED
    TransactionOption.readOnly=true
    でトランザクションを起動することを示します。
    readOnlyモードでトランザクションが新規に起動した場合、 そのトランザクションは最終的にロールバックされます。
    このトランザクションコンテキストに紐づけられている特定の属性を削除します。
    static void
    トランザクションが開始していない場合はトランザクションを起動し、funcを実行します。 トランザクション制御方法は、TransactionOptionのデフォルトが適用されます。
    static <R> R
    トランザクションが開始していない場合はトランザクションを起動し、funcを実行します。 トランザクション制御方法は、TransactionOptionのデフォルトが適用されます。
    static void
    新規にトランザクションを起動し、funcを実行します。 トランザクション制御方法は、TransactionOptionのデフォルトが適用されます。
    static <R> R
    新規にトランザクションを起動し、funcを実行します。 トランザクション制御方法は、TransactionOptionのデフォルトが適用されます。
    static void
    トランザクションをreadOnlyモードで新規に起動します。 これは、
    TransactionOption.propagation=REQUIRES_NEW
    TransactionOption.readOnly=true
    でトランザクションを起動することを示します。
    readOnlyモードでトランザクションが新規に起動した場合、 そのトランザクションは最終的にロールバックされます。
    static <R> R
    トランザクションをreadOnlyモードで新規に起動します。 これは、
    TransactionOption.propagation=REQUIRES_NEW
    TransactionOption.readOnly=true
    でトランザクションを起動することを示します。
    readOnlyモードでトランザクションが新規に起動した場合、 そのトランザクションは最終的にロールバックされます。
    void
    トランザクションをロールバックします。
    void
    setAttribute(Object key, Object value)
    このトランザクションのコンテキストに特定の属性を紐づけます。
    void
    このトランザクションをロールバックするものとしてマークします。 setRollbackOnlyされたトランザクションは最終的にはロールバックされます。
    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を実行します。
  • Field Details

    • NO_TRANSACTION

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

    • getCurrent

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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