Package org.iplass.mtp.transaction
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
Modifier and TypeFieldDescriptionstatic final Transaction
トランザクションがない状態を表すTransactionのインスタンスです。 トランザクションがまだ開始されていない状態、もしくはトランザクションがサスペンドされている場合に当インスタンスが返却されます。
getStatus()
は常にTransactionStatus.NONE
を返します。
setAttribute(Object, Object)
などのその他のトランザクション制御メソッドはなにも処理しません。 -
Method Summary
Modifier and TypeMethodDescriptionvoid
addTransactionListener
(TransactionListener listener) このトランザクションのcommit、rollbackを監視するリスナーを登録します。default void
afterCommit
(Runnable func) このトランザクションがcommitされた場合、funcを実行します。 funcの引数にはこのトランザクションが渡されます。default void
afterRollback
(Runnable func) このトランザクションがrollbackされた場合、funcを実行します。 funcの引数にはこのトランザクションが渡されます。void
commit()
トランザクションをコミットします。getAttribute
(Object key) このトランザクションコンテキストに紐づけられている特定の属性を取得します。 同一トランザクション内でsetAttribute()したものがあれば、その値が取得できます。static Transaction
現在の実行コンテキストに関連しているトランザクションのインスタンスを取得します。 もし、トランザクションが開始されていない場合は、NO_TRANSACTION
が返却されます。トランザクションの状態を取得します。boolean
このトランザクションがReadOnlyとしてマークされているかどうかを取得します。boolean
このトランザクションがsetRollbackOnlyされているかどうかを取得します。static void
readOnly
(Consumer<Transaction> func) トランザクションをreadOnlyモードで起動します。 ただし、すでにトランザクションが開始されている場合、 新規にトランザクションは開始せず既存のトランザクションをそのまま利用します。 これは、
TransactionOption.propagation=REQUIRED
TransactionOption.readOnly=true
でトランザクションを起動することを示します。
readOnlyモードでトランザクションが新規に起動した場合、 そのトランザクションは最終的にロールバックされます。static <R> R
readOnly
(Function<Transaction, R> func) トランザクションをreadOnlyモードで起動します。 ただし、すでにトランザクションが開始されている場合、 新規にトランザクションは開始せず既存のトランザクションをそのまま利用します。 これは、
TransactionOption.propagation=REQUIRED
TransactionOption.readOnly=true
でトランザクションを起動することを示します。
readOnlyモードでトランザクションが新規に起動した場合、 そのトランザクションは最終的にロールバックされます。removeAttribute
(Object key) このトランザクションコンテキストに紐づけられている特定の属性を削除します。static void
required
(Consumer<Transaction> func) トランザクションが開始していない場合はトランザクションを起動し、funcを実行します。 トランザクション制御方法は、TransactionOption
のデフォルトが適用されます。static <R> R
required
(Function<Transaction, R> func) トランザクションが開始していない場合はトランザクションを起動し、funcを実行します。 トランザクション制御方法は、TransactionOption
のデフォルトが適用されます。static void
requiresNew
(Consumer<Transaction> func) 新規にトランザクションを起動し、funcを実行します。 トランザクション制御方法は、TransactionOption
のデフォルトが適用されます。static <R> R
requiresNew
(Function<Transaction, R> func) 新規にトランザクションを起動し、funcを実行します。 トランザクション制御方法は、TransactionOption
のデフォルトが適用されます。static void
トランザクションをreadOnlyモードで新規に起動します。 これは、
TransactionOption.propagation=REQUIRES_NEW
TransactionOption.readOnly=true
でトランザクションを起動することを示します。
readOnlyモードでトランザクションが新規に起動した場合、 そのトランザクションは最終的にロールバックされます。static <R> R
requiresNewReadOnly
(Function<Transaction, R> func) トランザクションをreadOnlyモードで新規に起動します。 これは、
TransactionOption.propagation=REQUIRES_NEW
TransactionOption.readOnly=true
でトランザクションを起動することを示します。
readOnlyモードでトランザクションが新規に起動した場合、 そのトランザクションは最終的にロールバックされます。void
rollback()
トランザクションをロールバックします。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
with
(TransactionOption option, Consumer<Transaction> func) 指定のoptionで、トランザクションを起動しfuncを実行します。static <R> R
with
(TransactionOption option, Function<Transaction, R> func) 指定のoptionで、トランザクションを起動しfuncを実行します。
-
Field Details
-
NO_TRANSACTION
トランザクションがない状態を表すTransactionのインスタンスです。 トランザクションがまだ開始されていない状態、もしくはトランザクションがサスペンドされている場合に当インスタンスが返却されます。
getStatus()
は常にTransactionStatus.NONE
を返します。
setAttribute(Object, Object)
などのその他のトランザクション制御メソッドはなにも処理しません。
-
-
Method Details
-
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
このトランザクションのコンテキストに特定の属性を紐づけます。- Parameters:
key
- 属性のキーvalue
- 属性の値
-
getAttribute
このトランザクションコンテキストに紐づけられている特定の属性を取得します。 同一トランザクション内でsetAttribute()したものがあれば、その値が取得できます。- Parameters:
key
- 属性のキー- Returns:
- 属性の値
-
removeAttribute
このトランザクションコンテキストに紐づけられている特定の属性を削除します。- Parameters:
key
- 属性のキー- Returns:
- 削除された値
-
addTransactionListener
このトランザクションのcommit、rollbackを監視するリスナーを登録します。- Parameters:
listener
-
-
afterCommit
このトランザクションがcommitされた場合、funcを実行します。 funcの引数にはこのトランザクションが渡されます。- Parameters:
func
-
-
afterRollback
このトランザクションがrollbackされた場合、funcを実行します。 funcの引数にはこのトランザクションが渡されます。- Parameters:
func
-
-
required
トランザクションが開始していない場合はトランザクションを起動し、funcを実行します。 トランザクション制御方法は、TransactionOption
のデフォルトが適用されます。- Parameters:
func
-
-
required
トランザクションが開始していない場合はトランザクションを起動し、funcを実行します。 トランザクション制御方法は、TransactionOption
のデフォルトが適用されます。- Parameters:
func
-- Returns:
- funcが返却する値
-
requiresNew
新規にトランザクションを起動し、funcを実行します。 トランザクション制御方法は、TransactionOption
のデフォルトが適用されます。- Parameters:
func
-
-
requiresNew
新規にトランザクションを起動し、funcを実行します。 トランザクション制御方法は、TransactionOption
のデフォルトが適用されます。- Parameters:
func
-- Returns:
- funcが返却する値
-
readOnly
トランザクションをreadOnlyモードで起動します。 ただし、すでにトランザクションが開始されている場合、 新規にトランザクションは開始せず既存のトランザクションをそのまま利用します。 これは、
TransactionOption.propagation=REQUIRED
TransactionOption.readOnly=true
でトランザクションを起動することを示します。
readOnlyモードでトランザクションが新規に起動した場合、 そのトランザクションは最終的にロールバックされます。- Parameters:
func
-
-
readOnly
トランザクションをreadOnlyモードで起動します。 ただし、すでにトランザクションが開始されている場合、 新規にトランザクションは開始せず既存のトランザクションをそのまま利用します。 これは、
TransactionOption.propagation=REQUIRED
TransactionOption.readOnly=true
でトランザクションを起動することを示します。
readOnlyモードでトランザクションが新規に起動した場合、 そのトランザクションは最終的にロールバックされます。- Parameters:
func
-- Returns:
- funcが返却する値
-
requiresNewReadOnly
トランザクションをreadOnlyモードで新規に起動します。 これは、
TransactionOption.propagation=REQUIRES_NEW
TransactionOption.readOnly=true
でトランザクションを起動することを示します。
readOnlyモードでトランザクションが新規に起動した場合、 そのトランザクションは最終的にロールバックされます。- Parameters:
func
-
-
requiresNewReadOnly
トランザクションをreadOnlyモードで新規に起動します。 これは、
TransactionOption.propagation=REQUIRES_NEW
TransactionOption.readOnly=true
でトランザクションを起動することを示します。
readOnlyモードでトランザクションが新規に起動した場合、 そのトランザクションは最終的にロールバックされます。- Parameters:
func
-- Returns:
- funcが返却する値
-
with
指定のpropagationで、トランザクションを起動しfuncを実行します。- Parameters:
propagation
-func
-
-
with
指定のpropagationで、トランザクションを起動しfuncを実行します。- Parameters:
propagation
-func
-- Returns:
- funcが返却する値
-
with
指定のoptionで、トランザクションを起動しfuncを実行します。- Parameters:
option
-func
-
-
with
指定のoptionで、トランザクションを起動しfuncを実行します。- Parameters:
option
-func
-- Returns:
- funcが返却する値
-