クラス JdbcTransactionManager
- 実装されたすべてのインターフェース:
SerializableSE
、InitializingBean
、ConfigurableTransactionManager
、PlatformTransactionManager
、ResourceTransactionManager
、TransactionManager
JdbcAccessor
- プレーンな DataSourceTransactionManager
のサブクラスを揃え、コミットとロールバックのステップに共通の JDBC 例外変換を追加します。通常、デフォルトで同じ SQLExceptionTranslator
インフラストラクチャを適用する JdbcTemplate
と組み合わせて使用されます。 例外変換は、コミットの後半で同時実行エラーが発生する可能性がある直列化可能なトランザクション (Postgres など) のコミットステップに特に関連しています。これにより、呼び出し元に TransactionSystemException
ではなく ConcurrencyFailureException
をスローできるようになります。
HibernateTransactionManager
および JpaTransactionManager
と同様に、このトランザクションマネージャーは AbstractPlatformTransactionManager.commit(org.springframework.transaction.TransactionStatus)
から DataAccessException
をスローし、AbstractPlatformTransactionManager.rollback(org.springframework.transaction.TransactionStatus)
からもスローする可能性があります。呼び出しコードは、TransactionException
の隣でそのような例外を処理するために準備する必要があります。これは、TransactionSynchronization
実装が flush
および beforeCommit
フェーズでそのような例外をスローする場合があるため、これは一般的に賢明です。
- 導入:
- 5.3
- 作成者:
- Juergen Hoeller, Sebastien Deleuze
- 関連事項:
ネストされたクラスのサマリー
クラス org.springframework.transaction.support.AbstractPlatformTransactionManager から継承されたネストクラス / インターフェース
AbstractPlatformTransactionManager.SuspendedResourcesHolder
フィールドサマリー
クラス org.springframework.transaction.support.AbstractPlatformTransactionManager から継承されたフィールド
logger, SYNCHRONIZATION_ALWAYS, SYNCHRONIZATION_NEVER, SYNCHRONIZATION_ON_ACTUAL_TRANSACTION
コンストラクターのサマリー
コンストラクター説明新しいJdbcTransactionManager
インスタンスを作成します。JdbcTransactionManager
(DataSourceSE dataSource) 新しいJdbcTransactionManager
インスタンスを作成します。方法の概要
修飾子と型メソッド説明void
必要に応じて例外トランスレータを積極的に初期化し、何も設定されていない場合は指定された DataSource のデフォルトのトランスレータを作成します。このインスタンスに使用する例外トランスレータを返し、必要に応じてデフォルトを作成します。boolean
このトランザクションマネージャーの SQLExceptionTranslator を遅延初期化するかどうかを返します。void
setDatabaseProductName
(StringSE dbName) このトランザクションマネージャーが動作するDataSource
のデータベース製品名を指定します。void
setExceptionTranslator
(SQLExceptionTranslator exceptionTranslator) このトランザクションマネージャーの例外トランスレーターを設定します。void
setLazyInit
(boolean lazyInit) SQLException が最初に発生したときに、このトランザクションマネージャーの SQLExceptionTranslator を遅延初期化するかどうかを設定します。protected RuntimeExceptionSE
translateException
(StringSE task, SQLExceptionSE ex) この実装はSQLExceptionTranslator
の使用を試み、TransactionSystemException
にフォールバックします。クラス org.springframework.jdbc.datasource.DataSourceTransactionManager から継承されたメソッド
doBegin, doCleanupAfterCompletion, doCommit, doGetTransaction, doResume, doRollback, doSetRollbackOnly, doSuspend, getDataSource, getResourceFactory, isEnforceReadOnly, isExistingTransaction, obtainDataSource, prepareTransactionalConnection, setDataSource, setEnforceReadOnly
クラス org.springframework.transaction.support.AbstractPlatformTransactionManager から継承されたメソッド
commit, determineTimeout, getDefaultTimeout, getTransaction, getTransactionExecutionListeners, getTransactionSynchronization, invokeAfterCompletion, isFailEarlyOnGlobalRollbackOnly, isGlobalRollbackOnParticipationFailure, isNestedTransactionAllowed, isRollbackOnCommitFailure, isValidateExistingTransaction, prepareForCommit, prepareSynchronization, registerAfterCompletionWithExistingTransaction, resume, rollback, setDefaultTimeout, setFailEarlyOnGlobalRollbackOnly, setGlobalRollbackOnParticipationFailure, setNestedTransactionAllowed, setRollbackOnCommitFailure, setTransactionExecutionListeners, setTransactionSynchronization, setTransactionSynchronizationName, setValidateExistingTransaction, shouldCommitOnGlobalRollbackOnly, suspend, triggerBeforeCommit, triggerBeforeCompletion, useSavepointForNestedTransaction
クラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE
インターフェース org.springframework.transaction.ConfigurableTransactionManager から継承されたメソッド
addListener
インターフェース org.springframework.transaction.PlatformTransactionManager から継承されたメソッド
commit, getTransaction, rollback
コンストラクターの詳細
JdbcTransactionManager
public JdbcTransactionManager()新しいJdbcTransactionManager
インスタンスを作成します。DataSource
を使用するには、DataSource
を設定する必要があります。JdbcTransactionManager
新しいJdbcTransactionManager
インスタンスを作成します。- パラメーター:
dataSource
- トランザクションを管理する JDBC DataSource
メソッドの詳細
setDatabaseProductName
このトランザクションマネージャーが動作するDataSource
のデータベース製品名を指定します。これにより、メタデータを取得するためにDataSource
からConnection
を取得することなく、SQLErrorCodeSQLExceptionTranslator
を初期化することができます。setExceptionTranslator
このトランザクションマネージャーの例外トランスレーターを設定します。ユーザー指定の `sql-error-codes.xml` ファイルがクラスパスのルートで見つかった場合にデフォルトで使用される
SQLErrorCodeSQLExceptionTranslator
。それ以外の場合、6.0 では、SQLExceptionSubclassTranslator
がデフォルトのトランスレータとして機能します。getExceptionTranslator
このインスタンスに使用する例外トランスレータを返し、必要に応じてデフォルトを作成します。setLazyInit
public void setLazyInit(boolean lazyInit) SQLException が最初に発生したときに、このトランザクションマネージャーの SQLExceptionTranslator を遅延初期化するかどうかを設定します。デフォルトは "true" です。起動時に初期化するために "false" に切り替えることができます。初期化は、
afterPropertiesSet()
が呼び出された場合にのみ適用されます。isLazyInit
public boolean isLazyInit()このトランザクションマネージャーの SQLExceptionTranslator を遅延初期化するかどうかを返します。afterPropertiesSet
public void afterPropertiesSet()必要に応じて例外トランスレータを積極的に初期化し、何も設定されていない場合は指定された DataSource のデフォルトのトランスレータを作成します。- 次で指定:
- インターフェース
InitializingBean
のafterPropertiesSet
- オーバーライド:
- クラス
DataSourceTransactionManager
のafterPropertiesSet
translateException
この実装はSQLExceptionTranslator
の使用を試み、TransactionSystemException
にフォールバックします。- オーバーライド:
- クラス
DataSourceTransactionManager
のtranslateException
- パラメーター:
task
- タスクの説明 (コミットまたはロールバック)ex
- コミット / ロールバックからスローされる SQLException- 戻り値:
- スローする変換された例外、
DataAccessException
またはTransactionException
- 関連事項: