クラス 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 を遅延初期化するかどうかを返します。voidsetDatabaseProductName(StringSE dbName) このトランザクションマネージャーが動作するDataSourceのデータベース製品名を指定します。voidsetExceptionTranslator(SQLExceptionTranslator exceptionTranslator) このトランザクションマネージャーの例外トランスレーターを設定します。voidsetLazyInit(boolean lazyInit) SQLException が最初に発生したときに、このトランザクションマネージャーの SQLExceptionTranslator を遅延初期化するかどうかを設定します。protected RuntimeExceptionSEtranslateException(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 - 関連事項: