org.seasar.doma.jdbc.tx
クラス KeepAliveLocalTransaction

java.lang.Object
  上位を拡張 org.seasar.doma.jdbc.tx.LocalTransaction
      上位を拡張 org.seasar.doma.jdbc.tx.KeepAliveLocalTransaction

public class KeepAliveLocalTransaction
extends LocalTransaction

明示的に破棄されるまでJDBC接続を維持し続けるローカルトランザクションです。

ただし、例外が発生した場合、接続は閉じられます。

このクラスはスレッドセーフです。

 KeepAliveLocalTransaction tx = AppConfig.getKeepAliveLocalTransaction();
 tx.init();
 try {
     try {
         tx.begin();
         Employee employee = dao.selectById(1);
         employee.setName("hoge");
         employee.setJobType(JobType.PRESIDENT);
         dao.update(employee);
         tx.commit();
     } finally {
         tx.rollback();
     }
     try {
         tx.begin();
         Employee employee = dao.selectById(2);
         employee.setName("foo");
         employee.setJobType(JobType.SALESMAN);
         dao.update(employee);
         tx.commit();
     } finally {
         tx.rollback();
     }
 } finally {
     tx.destroy();
 }
 

導入されたバージョン:
1.21.0
作成者:
taedium

フィールドの概要
 
クラス org.seasar.doma.jdbc.tx.LocalTransaction から継承されたフィールド
className, dataSource, defaultTransactionIsolationLevel, jdbcLogger, localTxContextHolder
 
コンストラクタの概要
protected KeepAliveLocalTransaction(DataSource dataSource, ThreadLocal<org.seasar.doma.jdbc.tx.LocalTransactionContext> localTxContextHolder, JdbcLogger jdbcLogger)
          インスタンスを構築します。
protected KeepAliveLocalTransaction(DataSource dataSource, ThreadLocal<org.seasar.doma.jdbc.tx.LocalTransactionContext> localTxContextHolder, JdbcLogger jdbcLogger, TransactionIsolationLevel defaultTransactionIsolationLevel)
          デフォルトのトランザクション分離レベルを指定してインスタンスを構築します。
 
メソッドの概要
protected  org.seasar.doma.jdbc.tx.LocalTransactionContext createLocalTransactionContext()
          ローカルトランザクションコンテキストを生成します。
 void destroy()
          トランザクションコンテキストを破棄します。
protected  void endInternal(org.seasar.doma.jdbc.tx.LocalTransactionContext context, String callerMethodName)
          トランザクションを終了しますがJDBCの接続は閉じません。
 void init()
          トランザクションコンテキストを初期化します。
protected  boolean isActiveInternal(org.seasar.doma.jdbc.tx.LocalTransactionContext context)
           
 
クラス org.seasar.doma.jdbc.tx.LocalTransaction から継承されたメソッド
begin, begin, beginInternal, commit, end, hasSavepoint, isActive, release, releaseSavepoint, rollback, rollback, rollbackInternal, setSavepoint, toString
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

コンストラクタの詳細

KeepAliveLocalTransaction

protected KeepAliveLocalTransaction(DataSource dataSource,
                                    ThreadLocal<org.seasar.doma.jdbc.tx.LocalTransactionContext> localTxContextHolder,
                                    JdbcLogger jdbcLogger)
インスタンスを構築します。

パラメータ:
dataSource - データソース
localTxContextHolder - ローカルトランザクションコンテキストのホルダー
jdbcLogger - JDBCに関するロガー

KeepAliveLocalTransaction

protected KeepAliveLocalTransaction(DataSource dataSource,
                                    ThreadLocal<org.seasar.doma.jdbc.tx.LocalTransactionContext> localTxContextHolder,
                                    JdbcLogger jdbcLogger,
                                    TransactionIsolationLevel defaultTransactionIsolationLevel)
デフォルトのトランザクション分離レベルを指定してインスタンスを構築します。

パラメータ:
dataSource - データソース
localTxContextHolder - ローカルトランザクションコンテキストのホルダー
jdbcLogger - JDBCに関するロガー
defaultTransactionIsolationLevel - デフォルトのトランザクション分離レベル
メソッドの詳細

init

public void init()
トランザクションコンテキストを初期化します。

この操作によりJDBCの接続が確立されます。

このメソッドを呼び出さずに最初の LocalTransaction.begin() を呼び出した場合、その時点でJDBCの接続が確立されます。

例外:
JdbcException - JDBCの接続に失敗した場合

createLocalTransactionContext

protected org.seasar.doma.jdbc.tx.LocalTransactionContext createLocalTransactionContext()
クラス LocalTransaction の記述:
ローカルトランザクションコンテキストを生成します。

オーバーライド:
クラス LocalTransaction 内の createLocalTransactionContext
戻り値:
ローカルトランザクションコンテキスト

destroy

public void destroy()
トランザクションコンテキストを破棄します。

この操作によりJDBCの接続が閉じられます。

このメソッドは、実行時例外をスローしません。


endInternal

protected void endInternal(org.seasar.doma.jdbc.tx.LocalTransactionContext context,
                           String callerMethodName)
トランザクションを終了しますがJDBCの接続は閉じません。

オーバーライド:
クラス LocalTransaction 内の endInternal

isActiveInternal

protected boolean isActiveInternal(org.seasar.doma.jdbc.tx.LocalTransactionContext context)
オーバーライド:
クラス LocalTransaction 内の isActiveInternal


Copyright © 2009-2014 The Seasar Foundation. All Rights Reserved.