|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectorg.seasar.doma.jdbc.tx.LocalTransaction
public final class LocalTransaction
ローカルトランザクションです。
このクラスはスレッドセーフです。
begin() もしくは begin(TransactionIsolationLevel)
でトランザクションを開始した後、トランザクションは必ず commit() もしくは rollback()
で終了してください。 rollback()は、begin() が成功する前や commit()
が成功した後に呼び出された場合、実質的には何も行いません。したがって、次のように記述できます。
LocalTransaction tx = AppConfig.getLocalTransaction();
try {
// 開始
tx.begin();
Employee employee = dao.selectById(1);
employee.setName("hoge");
employee.setJobType(JobType.PRESIDENT);
dao.update(employee);
// コミット
tx.commit();
} finally {
// ロールバック
tx.rollback();
}
トランザクションを終了した後、 同じインスタンスに対して begin() もしくは
begin(TransactionIsolationLevel) を呼び出した場合、新しいトランザクションを開始できます。
LocalTransaction tx = AppConfig.getLocalTransaction();
try {
// トランザクションAの開始
tx.begin();
...
tx.commit();
} finally {
tx.rollback();
}
try {
// トランザクションBの開始
tx.begin();
...
tx.commit();
} finally {
tx.rollback();
}
トランザクション開始後、このクラスのいずれかのメソッドが例外をスローした場合、 トランザクションは直ちにロールバックされます。
| メソッドの概要 | |
|---|---|
void |
begin()
ローカルトランザクションを開始します。 |
void |
begin(TransactionIsolationLevel transactionIsolationLevel)
トランザクション分離レベルを指定してローカルトランザクションを開始します。 |
void |
commit()
ローカルトランザクションをコミットします。 |
boolean |
hasSavepoint(java.lang.String savepointName)
このローカルトランザクションでセーブポイントを保持しているかどうかを返します。 |
boolean |
isActive()
ローカルトランザクションがアクティブな場合 true を返します。 |
void |
releaseSavepoint(java.lang.String savepointName)
ローカルトランザクションから指定されたセーブポイントと以降のセーブポイントを削除します。 |
void |
rollback()
ローカルトランザクションをロールバックします。 |
void |
rollback(java.lang.String savepointName)
指定されたセーブポイントが設定されたあとに行われたすべての変更をロールバックします。 |
void |
setSavepoint(java.lang.String savepointName)
ローカルトランザクションのセーブポイントを作成します。 |
java.lang.String |
toString()
トランザクションを識別するための文字列表現を返します。 |
| クラス java.lang.Object から継承されたメソッド |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| メソッドの詳細 |
|---|
public void begin()
このメソッドを呼び出した場合、commit() もしくは rollback()
を呼び出し、ローカルトランザクションを終了する必要があります。同一スレッド内であれば、 異なるインスタンスの commit()
もしくは rollback() でも構いません。
LocalTransactionAlreadyBegunException - ローカルトランザクションがすでに開始されている場合
JdbcException - トランザクションの開始に失敗した場合public void begin(TransactionIsolationLevel transactionIsolationLevel)
このメソッドを呼び出した場合、commit() もしくは rollback()
を呼び出し、ローカルトランザクションを終了する必要があります。同一スレッド内であれば、 異なるインスタンスの commit()
もしくは rollback() でも構いません。
transactionIsolationLevel - トランザクション分離レベル
DomaNullPointerException - 引数が null の場合
LocalTransactionAlreadyBegunException - ローカルトランザクションがすでに開始されている場合
JdbcException - トランザクションの開始に失敗した場合public void commit()
このメソッドを呼び出す前に begin() または
begin(TransactionIsolationLevel)
を呼び出し、ローカルトランザクションを開始しておく必要があります。 同一スレッド内であれば、 異なるインスタンスの
begin() または begin(TransactionIsolationLevel) でも構いません。
LocalTransactionNotYetBegunException - ローカルトランザクションがまだ開始されていない場合
JdbcException - コミットに失敗した場合public void rollback()
ローカルトランザクションが開始されていない場合、何もおこないません。
このメソッドは、例外をスローしません。
public void setSavepoint(java.lang.String savepointName)
このメソッドを呼び出す前に begin() または
begin(TransactionIsolationLevel)
を呼び出し、ローカルトランザクションを開始しておく必要があります。 同一スレッド内であれば、 異なるインスタンスの
begin() または begin(TransactionIsolationLevel) でも構いません。
savepointName - セーブポイントの名前
DomaNullPointerException - 引数が null の場合
LocalTransactionNotYetBegunException - ローカルトランザクションがまだ開始されていない場合
SavepointAleadyExistsException - セーブポイントがすでに存在する場合
JdbcException - セーブポイントの作成に失敗した場合public boolean hasSavepoint(java.lang.String savepointName)
savepointName - セーブポイントの名前
ture
DomaNullPointerException - 引数が null の場合
LocalTransactionNotYetBegunException - ローカルトランザクションがまだ開始されていない場合public void releaseSavepoint(java.lang.String savepointName)
このメソッドを呼び出す前に begin() または
begin(TransactionIsolationLevel)
を呼び出し、ローカルトランザクションを開始しておく必要があります。 同一スレッド内であれば、 異なるインスタンスの
begin() または begin(TransactionIsolationLevel) でも構いません。
savepointName - セーブポイントの名前
DomaNullPointerException - 引数が null の場合
LocalTransactionNotYetBegunException - ローカルトランザクションがまだ開始されていない場合
JdbcException - セーブポイントの削除に失敗した場合public void rollback(java.lang.String savepointName)
このメソッドを呼び出す前に begin() または
begin(TransactionIsolationLevel)
を呼び出し、ローカルトランザクションを開始しておく必要があります。 同一スレッド内であれば、 異なるインスタンスの
begin() または begin(TransactionIsolationLevel) でも構いません。
savepointName - セーブポイントの名前
DomaNullPointerException - 引数が null の場合
SavepointNotFoundException - セーブポイントが見つからない場合
LocalTransactionNotYetBegunException - ローカルトランザクションがまだ開始されていない場合
JdbcException - セーブポイントへのロールバックに失敗した場合public boolean isActive()
true を返します。
truepublic java.lang.String toString()
java.lang.Object 内の toString
|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||