public class IsolationLevelDataSourceAdapter extends UserCredentialsDataSourceAdapter
getConnection
呼び出しに適用する、ターゲット DataSource
SE のアダプター。指定されている場合は、読み取り専用フラグも適用されます。目的の分離レベル(およびユーザー資格情報)が構成されていないターゲット JNDI DataSource をプロキシするために使用できます。クライアントコードは、通常のようにこの DataSource で機能し、そのような設定について心配する必要はありません。
スーパークラス UserCredentialsDataSourceAdapter
から特定のユーザー資格情報を適用する機能を継承します。その機能(UserCredentialsDataSourceAdapter.setCredentialsForCurrentThread(java.lang.String, java.lang.String)
など)の詳細については、後者の javadoc を参照してください。
警告 : このアダプターは、そこから取得したすべての接続に対して Connection.setTransactionIsolation(int)
SE および / または Connection.setReadOnly(boolean)
SE を呼び出すだけです。ただし、これらの設定はリセットされません。ターゲット DataSource が接続プール処理の一部としてこのようなリセットを実行することを期待しています。 ターゲット DataSource がそのようなトランザクション状態を適切にクリーンアップすることを確認してください。
コンストラクターと説明 |
---|
IsolationLevelDataSourceAdapter() |
修飾子と型 | メソッドと説明 |
---|---|
protected ConnectionSE | doGetConnection(StringSE username, StringSE password) 現在の分離レベル値と読み取り専用フラグを、返された接続に適用します。 |
protected IntegerSE | getCurrentIsolationLevel() 現在の分離レベルを決定します: トランザクションの分離レベルまたは静的に定義された分離レベル。 |
protected BooleanSE | getCurrentReadOnlyFlag() 現在の読み取り専用フラグを決定します。デフォルトでは、トランザクションの読み取り専用ヒントです。 |
protected IntegerSE | getIsolationLevel() 静的に指定された分離レベルを返します。ない場合は null を返します。 |
void | setIsolationLevel(int isolationLevel) JDBC Connection SE 定数(対応する Spring TransactionDefinition 定数に相当)に従って、接続の取得に使用するデフォルトの分離レベルを指定します。 |
void | setIsolationLevelName(StringSE constantName) TransactionDefinition の対応する定数の名前でデフォルトの分離レベルを設定します。 |
getConnection, getConnection, removeCredentialsFromCurrentThread, setCatalog, setCredentialsForCurrentThread, setPassword, setSchema, setUsername
afterPropertiesSet, getLoginTimeout, getLogWriter, getParentLogger, getTargetDataSource, isWrapperFor, obtainTargetDataSource, setLoginTimeout, setLogWriter, setTargetDataSource, unwrap
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public final void setIsolationLevelName(StringSE constantName) throws IllegalArgumentExceptionSE
TransactionDefinition
の対応する定数の名前でデフォルトの分離レベルを設定します。"ISOLATION_SERIALIZABLE"。指定しない場合、ターゲット DataSource のデフォルトが使用されます。トランザクション固有の分離値は、DataSource レベルで指定された分離設定を常にオーバーライドすることに注意してください。
public void setIsolationLevel(int isolationLevel)
Connection
SE 定数(対応する Spring TransactionDefinition
定数に相当)に従って、接続の取得に使用するデフォルトの分離レベルを指定します。指定しない場合、ターゲット DataSource のデフォルトが使用されます。トランザクション固有の分離値は、DataSource レベルで指定された分離設定を常にオーバーライドすることに注意してください。
Connection.TRANSACTION_READ_UNCOMMITTED
SE, Connection.TRANSACTION_READ_COMMITTED
SE, Connection.TRANSACTION_REPEATABLE_READ
SE, Connection.TRANSACTION_SERIALIZABLE
SE, TransactionDefinition.ISOLATION_READ_UNCOMMITTED
, TransactionDefinition.ISOLATION_READ_COMMITTED
, TransactionDefinition.ISOLATION_REPEATABLE_READ
, TransactionDefinition.ISOLATION_SERIALIZABLE
, TransactionDefinition.getIsolationLevel()
, TransactionSynchronizationManager.getCurrentTransactionIsolationLevel()
@Nullable protected IntegerSE getIsolationLevel()
null
を返します。protected ConnectionSE doGetConnection(@Nullable StringSE username, @Nullable StringSE password) throws SQLExceptionSE
UserCredentialsDataSourceAdapter
の doGetConnection
username
- 使用するユーザー名 password
- 使用するパスワード SQLExceptionSE
getCurrentIsolationLevel()
, getCurrentReadOnlyFlag()
@Nullable protected IntegerSE getCurrentIsolationLevel()
null
TransactionSynchronizationManager.getCurrentTransactionIsolationLevel()
, setIsolationLevel(int)
@Nullable protected BooleanSE getCurrentReadOnlyFlag()
TransactionSynchronizationManager.isCurrentTransactionReadOnly()