インタフェース Transaction
- 既知の実装クラスのリスト:
NoTransaction
public interface Transaction
トランザクションを表すインタフェースです。
トランザクションを制御するためのメソッドを持っています。
トランザクション制御コード例
※現在起動中のトランザクションと別に新規にトランザクション処理を起動する場合
EntityManager em = ...
Entity e = ...
//新規にトランザクションを起動
Transaction.requiresNew(t -> {
em.insert(e);
//コミット成功時に実行する処理を追加
t.afterCommit(() -> {
System.out.println("committed");
});
:
:
});
-
フィールドの概要
フィールド -
メソッドの概要
修飾子とタイプメソッド説明voidaddTransactionListener(TransactionListener listener) このトランザクションのcommit、rollbackを監視するリスナーを登録します。default voidafterCommit(Runnable func) このトランザクションがcommitされた場合、funcを実行します。default voidafterRollback(Runnable func) このトランザクションがrollbackされた場合、funcを実行します。voidcommit()トランザクションをコミットします。getAttribute(Object key) このトランザクションコンテキストに紐づけられている特定の属性を取得します。static Transaction現在の実行コンテキストに関連しているトランザクションのインスタンスを取得します。トランザクションの状態を取得します。booleanこのトランザクションがReadOnlyとしてマークされているかどうかを取得します。booleanこのトランザクションがsetRollbackOnlyされているかどうかを取得します。static voidreadOnly(Consumer<Transaction> func) トランザクションをreadOnlyモードで起動します。static <R> RreadOnly(Function<Transaction, R> func) トランザクションをreadOnlyモードで起動します。removeAttribute(Object key) このトランザクションコンテキストに紐づけられている特定の属性を削除します。static voidrequired(Consumer<Transaction> func) トランザクションが開始していない場合はトランザクションを起動し、funcを実行します。static <R> Rrequired(Function<Transaction, R> func) トランザクションが開始していない場合はトランザクションを起動し、funcを実行します。static voidrequiresNew(Consumer<Transaction> func) 新規にトランザクションを起動し、funcを実行します。static <R> RrequiresNew(Function<Transaction, R> func) 新規にトランザクションを起動し、funcを実行します。static voidトランザクションをreadOnlyモードで新規に起動します。static <R> RrequiresNewReadOnly(Function<Transaction, R> func) トランザクションをreadOnlyモードで新規に起動します。voidrollback()トランザクションをロールバックします。voidsetAttribute(Object key, Object value) このトランザクションのコンテキストに特定の属性を紐づけます。voidこのトランザクションをロールバックするものとしてマークします。static voidwith(Propagation propagation, Consumer<Transaction> func) 指定のpropagationで、トランザクションを起動しfuncを実行します。static <R> Rwith(Propagation propagation, Function<Transaction, R> func) 指定のpropagationで、トランザクションを起動しfuncを実行します。static voidwith(TransactionOption option, Consumer<Transaction> func) 指定のoptionで、トランザクションを起動しfuncを実行します。static <R> Rwith(TransactionOption option, Function<Transaction, R> func) 指定のoptionで、トランザクションを起動しfuncを実行します。
-
フィールド詳細
-
NO_TRANSACTION
トランザクションがない状態を表すTransactionのインスタンスです。 トランザクションがまだ開始されていない状態、もしくはトランザクションがサスペンドされている場合に当インスタンスが返却されます。
getStatus()は常にTransactionStatus.NONEを返します。
setAttribute(Object, Object)などのその他のトランザクション制御メソッドはなにも処理しません。
-
-
メソッドの詳細
-
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
このトランザクションのコンテキストに特定の属性を紐づけます。- パラメータ:
key- 属性のキーvalue- 属性の値
-
getAttribute
このトランザクションコンテキストに紐づけられている特定の属性を取得します。 同一トランザクション内でsetAttribute()したものがあれば、その値が取得できます。- パラメータ:
key- 属性のキー- 戻り値:
- 属性の値
-
removeAttribute
このトランザクションコンテキストに紐づけられている特定の属性を削除します。- パラメータ:
key- 属性のキー- 戻り値:
- 削除された値
-
addTransactionListener
このトランザクションのcommit、rollbackを監視するリスナーを登録します。- パラメータ:
listener-
-
afterCommit
このトランザクションがcommitされた場合、funcを実行します。 funcの引数にはこのトランザクションが渡されます。- パラメータ:
func-
-
afterRollback
このトランザクションがrollbackされた場合、funcを実行します。 funcの引数にはこのトランザクションが渡されます。- パラメータ:
func-
-
required
トランザクションが開始していない場合はトランザクションを起動し、funcを実行します。 トランザクション制御方法は、TransactionOptionのデフォルトが適用されます。- パラメータ:
func-
-
required
トランザクションが開始していない場合はトランザクションを起動し、funcを実行します。 トランザクション制御方法は、TransactionOptionのデフォルトが適用されます。- パラメータ:
func-- 戻り値:
- funcが返却する値
-
requiresNew
新規にトランザクションを起動し、funcを実行します。 トランザクション制御方法は、TransactionOptionのデフォルトが適用されます。- パラメータ:
func-
-
requiresNew
新規にトランザクションを起動し、funcを実行します。 トランザクション制御方法は、TransactionOptionのデフォルトが適用されます。- パラメータ:
func-- 戻り値:
- funcが返却する値
-
readOnly
トランザクションをreadOnlyモードで起動します。 ただし、すでにトランザクションが開始されている場合、 新規にトランザクションは開始せず既存のトランザクションをそのまま利用します。 これは、
TransactionOption.propagation=REQUIRED
TransactionOption.readOnly=true
でトランザクションを起動することを示します。
readOnlyモードでトランザクションが新規に起動した場合、 そのトランザクションは最終的にロールバックされます。- パラメータ:
func-
-
readOnly
トランザクションをreadOnlyモードで起動します。 ただし、すでにトランザクションが開始されている場合、 新規にトランザクションは開始せず既存のトランザクションをそのまま利用します。 これは、
TransactionOption.propagation=REQUIRED
TransactionOption.readOnly=true
でトランザクションを起動することを示します。
readOnlyモードでトランザクションが新規に起動した場合、 そのトランザクションは最終的にロールバックされます。- パラメータ:
func-- 戻り値:
- funcが返却する値
-
requiresNewReadOnly
トランザクションをreadOnlyモードで新規に起動します。 これは、
TransactionOption.propagation=REQUIRES_NEW
TransactionOption.readOnly=true
でトランザクションを起動することを示します。
readOnlyモードでトランザクションが新規に起動した場合、 そのトランザクションは最終的にロールバックされます。- パラメータ:
func-
-
requiresNewReadOnly
トランザクションをreadOnlyモードで新規に起動します。 これは、
TransactionOption.propagation=REQUIRES_NEW
TransactionOption.readOnly=true
でトランザクションを起動することを示します。
readOnlyモードでトランザクションが新規に起動した場合、 そのトランザクションは最終的にロールバックされます。- パラメータ:
func-- 戻り値:
- funcが返却する値
-
with
指定のpropagationで、トランザクションを起動しfuncを実行します。- パラメータ:
propagation-func-
-
with
指定のpropagationで、トランザクションを起動しfuncを実行します。- パラメータ:
propagation-func-- 戻り値:
- funcが返却する値
-
with
指定のoptionで、トランザクションを起動しfuncを実行します。- パラメータ:
option-func-
-
with
指定のoptionで、トランザクションを起動しfuncを実行します。- パラメータ:
option-func-- 戻り値:
- funcが返却する値
-