クラス DefaultTransactionDefinition
- 実装されたすべてのインターフェース:
SerializableSE
,TransactionDefinition
- 既知の直属サブクラス
DefaultTransactionAttribute
,TransactionTemplate
TransactionDefinition
インターフェースのデフォルト実装。Bean スタイルの構成と適切なデフォルト値(PROPAGATION_REQUIRED、ISOLATION_DEFAULT、TIMEOUT_DEFAULT、readOnly = false)を提供します。TransactionTemplate
と DefaultTransactionAttribute
の両方の基本クラス。
- 導入:
- 08.05.2003
- 作成者:
- Juergen Hoeller, Sam Brannen
- 関連事項:
フィールドサマリー
修飾子と型フィールド説明static final StringSE
TransactionDefinition で定義されている分離定数のプレフィックス。static final StringSE
TransactionDefinition で定義された伝搬定数のプレフィックス。static final StringSE
説明文字列のトランザクションタイムアウト値のプレフィックス。static final StringSE
説明文字列内の読み取り専用トランザクションのマーカー。インターフェース org.springframework.transaction.TransactionDefinition から継承されたフィールド
ISOLATION_DEFAULT, ISOLATION_READ_COMMITTED, ISOLATION_READ_UNCOMMITTED, ISOLATION_REPEATABLE_READ, ISOLATION_SERIALIZABLE, PROPAGATION_MANDATORY, PROPAGATION_NESTED, PROPAGATION_NEVER, PROPAGATION_NOT_SUPPORTED, PROPAGATION_REQUIRED, PROPAGATION_REQUIRES_NEW, PROPAGATION_SUPPORTS, TIMEOUT_DEFAULT
コンストラクターのサマリー
コンストラクター説明デフォルト設定で新しいDefaultTransactionDefinition
を作成します。DefaultTransactionDefinition
(int propagationBehavior) 指定された伝播動作を持つ新しいDefaultTransactionDefinition
を作成します。コピーコンストラクター。方法の概要
修飾子と型メソッド説明boolean
この実装は、toString()
の結果を比較します。protected final StringBuilderSE
このトランザクション定義の識別記述を返します。final int
分離レベルを返します。final StringSE
getName()
このトランザクションの名前を返します。final int
伝播動作を返します。final int
トランザクションタイムアウトを返します。int
hashCode()
この実装は、toString()
のハッシュコードを返します。final boolean
読み取り専用トランザクションとして最適化するかどうかを返します。final void
setIsolationLevel
(int isolationLevel) 分離レベルを設定します。final void
setIsolationLevelName
(StringSE constantName) TransactionDefinition
の対応する定数の名前によって分離レベルを設定します。たとえば、"ISOLATION_DEFAULT"
。final void
このトランザクションの名前を設定します。final void
setPropagationBehavior
(int propagationBehavior) 伝播動作を設定します。final void
setPropagationBehaviorName
(StringSE constantName) TransactionDefinition
の対応する定数の名前によって伝播動作を設定します。たとえば、"PROPAGATION_REQUIRED"
。final void
setReadOnly
(boolean readOnly) 読み取り専用トランザクションとして最適化するかどうかを設定します。final void
setTimeout
(int timeout) 秒数として、適用するタイムアウトを設定します。toString()
このトランザクション定義の識別記述を返します。
フィールドの詳細
コンストラクターの詳細
DefaultTransactionDefinition
public DefaultTransactionDefinition()デフォルト設定で新しいDefaultTransactionDefinition
を作成します。Bean プロパティ setter を通じて変更できます。DefaultTransactionDefinition
コンストラクターをコピーします。定義は、Bean プロパティ setter を介して変更できます。DefaultTransactionDefinition
public DefaultTransactionDefinition(int propagationBehavior) 指定された伝播動作を持つ新しいDefaultTransactionDefinition
を作成します。Bean プロパティ setter を通じて変更できます。- パラメーター:
propagationBehavior
- TransactionDefinition インターフェースの伝搬定数の 1 つ- 関連事項:
メソッドの詳細
setPropagationBehaviorName
public final void setPropagationBehaviorName(StringSE constantName) throws IllegalArgumentExceptionSE TransactionDefinition
の対応する定数の名前によって伝播動作を設定します。たとえば、"PROPAGATION_REQUIRED"
。- パラメーター:
constantName
- 定数の名前- 例外:
IllegalArgumentExceptionSE
- 指定された値がPROPAGATION_
定数の 1 つに解決できない場合、またはnull
である場合- 関連事項:
setPropagationBehavior
public final void setPropagationBehavior(int propagationBehavior) 伝播動作を設定します。TransactionDefinition インターフェースの伝搬定数のいずれかでなければなりません。デフォルトは PROPAGATION_REQUIRED です。新しく開始されたトランザクションにのみ適用されるため、
TransactionDefinition.PROPAGATION_REQUIRED
またはTransactionDefinition.PROPAGATION_REQUIRES_NEW
で使用するために特別に設計されています。異なる分離レベルの既存のトランザクションに参加するときに分離レベルの宣言を拒否したい場合は、トランザクションマネージャーで "validateExistingTransactions" フラグを "true" に切り替えることを検討してください。TransactionDefinition.ISOLATION_DEFAULT
以外のレベルが指定された場合、カスタム分離レベルをサポートしないトランザクションマネージャーは例外をスローすることに注意してください。- 例外:
IllegalArgumentExceptionSE
- 指定された値がPROPAGATION_
定数のいずれでもない場合- 関連事項:
getPropagationBehavior
public final int getPropagationBehavior()インターフェースからコピーされた説明:TransactionDefinition
伝播動作を返します。this interface
で定義されたPROPAGATION_XXX
定数のいずれかを返さなければなりません。デフォルトは
TransactionDefinition.PROPAGATION_REQUIRED
です。setIsolationLevelName
TransactionDefinition
の対応する定数の名前によって分離レベルを設定します。たとえば、"ISOLATION_DEFAULT"
。- パラメーター:
constantName
- 定数の名前- 例外:
IllegalArgumentExceptionSE
- 指定された値がISOLATION_
定数の 1 つに解決できない場合、またはnull
である場合- 関連事項:
setIsolationLevel
public final void setIsolationLevel(int isolationLevel) 分離レベルを設定します。TransactionDefinition インターフェースの分離定数の 1 つでなければなりません。デフォルトは ISOLATION_DEFAULT です。新しく開始されたトランザクションにのみ適用されるため、
TransactionDefinition.PROPAGATION_REQUIRED
またはTransactionDefinition.PROPAGATION_REQUIRES_NEW
で使用するために特別に設計されています。異なる分離レベルの既存のトランザクションに参加するときに分離レベルの宣言を拒否したい場合は、トランザクションマネージャーで "validateExistingTransactions" フラグを "true" に切り替えることを検討してください。TransactionDefinition.ISOLATION_DEFAULT
以外のレベルが指定された場合、カスタム分離レベルをサポートしないトランザクションマネージャーは例外をスローすることに注意してください。- 例外:
IllegalArgumentExceptionSE
- 指定された値がISOLATION_
定数のいずれでもない場合- 関連事項:
getIsolationLevel
public final int getIsolationLevel()インターフェースからコピーされた説明:TransactionDefinition
分離レベルを返します。this interface
で定義されたISOLATION_XXX
定数のいずれかを返さなければなりません。これらの定数は、Connection
SE の同じ定数の値と一致するように設計されています。新しく開始されたトランザクションにのみ適用されるため、
TransactionDefinition.PROPAGATION_REQUIRED
またはTransactionDefinition.PROPAGATION_REQUIRES_NEW
で使用するために特別に設計されています。異なる分離レベルの既存のトランザクションに参加するときに分離レベルの宣言を拒否したい場合は、トランザクションマネージャーで "validateExistingTransactions" フラグを "true" に切り替えることを検討してください。デフォルトは
TransactionDefinition.ISOLATION_DEFAULT
です。TransactionDefinition.ISOLATION_DEFAULT
以外のレベルが指定された場合、カスタム分離レベルをサポートしないトランザクションマネージャーは例外をスローすることに注意してください。setTimeout
public final void setTimeout(int timeout) 秒数として、適用するタイムアウトを設定します。デフォルトは TIMEOUT_DEFAULT(-1)です。新たに開始されたトランザクションにのみ適用されるため、
TransactionDefinition.PROPAGATION_REQUIRED
またはTransactionDefinition.PROPAGATION_REQUIRES_NEW
での使用専用に設計されています。タイムアウトをサポートしないトランザクションマネージャーは、
TransactionDefinition.TIMEOUT_DEFAULT
以外のタイムアウトが指定された場合に例外をスローすることに注意してください。getTimeout
public final int getTimeout()インターフェースからコピーされた説明:TransactionDefinition
トランザクションタイムアウトを返します。秒数または
TransactionDefinition.TIMEOUT_DEFAULT
を返す必要があります。新たに開始されたトランザクションにのみ適用されるため、
TransactionDefinition.PROPAGATION_REQUIRED
またはTransactionDefinition.PROPAGATION_REQUIRES_NEW
での使用専用に設計されています。タイムアウトをサポートしないトランザクションマネージャーは、
TransactionDefinition.TIMEOUT_DEFAULT
以外のタイムアウトが指定された場合に例外をスローすることに注意してください。デフォルトは
TransactionDefinition.TIMEOUT_DEFAULT
です。- 次で指定:
- インターフェース
TransactionDefinition
のgetTimeout
- 戻り値:
- トランザクションのタイムアウト
setReadOnly
public final void setReadOnly(boolean readOnly) 読み取り専用トランザクションとして最適化するかどうかを設定します。デフォルトは "false" です。読み取り専用フラグは、実際のリソーストランザクション(
TransactionDefinition.PROPAGATION_REQUIRED
/TransactionDefinition.PROPAGATION_REQUIRES_NEW
)によって裏付けられているか、リソースレベルで非トランザクションで動作している(TransactionDefinition.PROPAGATION_SUPPORTS
)かに関わらず、すべてのトランザクションコンテキストに適用されます。後者の場合、フラグは HibernateSession
などのアプリケーション内の管理対象リソースにのみ適用されます。これは、実際のトランザクションサブシステムのヒントとしてのみ機能します。 必ずしも書き込みアクセスの試行が失敗するわけではありません。読み取り専用ヒントを解釈できないトランザクションマネージャーは、読み取り専用トランザクションを要求されたときに例外をスローしません。
isReadOnly
public final boolean isReadOnly()インターフェースからコピーされた説明:TransactionDefinition
読み取り専用トランザクションとして最適化するかどうかを返します。読み取り専用フラグは、実際のリソーストランザクション(
TransactionDefinition.PROPAGATION_REQUIRED
/TransactionDefinition.PROPAGATION_REQUIRES_NEW
)によって裏付けられているか、リソースレベルで非トランザクションで動作している(TransactionDefinition.PROPAGATION_SUPPORTS
)かに関わらず、すべてのトランザクションコンテキストに適用されます。後者の場合、フラグは HibernateSession
などのアプリケーション内の管理対象リソースにのみ適用されます。これは、実際のトランザクションサブシステムのヒントとしてのみ機能します。 必ずしも書き込みアクセスの試行が失敗するわけではありません。読み取り専用ヒントを解釈できないトランザクションマネージャーは、読み取り専用トランザクションを要求されたときに例外をスローしません。
- 次で指定:
- インターフェース
TransactionDefinition
のisReadOnly
- 戻り値:
- トランザクションを読み取り専用として最適化する場合は
true
(デフォルトでfalse
) - 関連事項:
setName
このトランザクションの名前を設定します。デフォルトはなしです。これは、トランザクションモニターに表示されるトランザクション名として使用されます(該当する場合)(たとえば、WebLogic's)。
getName
インターフェースからコピーされた説明:TransactionDefinition
このトランザクションの名前を返します。null
にすることができます。これは、該当する場合、トランザクションモニターに表示されるトランザクション名として使用されます。
Spring の宣言的トランザクションの場合、公開される名前は
fully-qualified class name + "." + method name
(デフォルト)です。- 次で指定:
- インターフェース
TransactionDefinition
のgetName
- 戻り値:
- このトランザクションの名前(デフォルトでは
null
} - 関連事項:
equals
この実装は、toString()
の結果を比較します。hashCode
public int hashCode()この実装は、toString()
のハッシュコードを返します。toString
このトランザクション定義の識別記述を返します。形式は、
toString
の結果をTransactionAttribute
型の Bean プロパティにフィードできるように、TransactionAttributeEditor
で使用される形式と一致します。equals
およびhashCode
の正しい動作のために、サブクラスでオーバーライドする必要があります。または、equals(java.lang.Object)
およびhashCode()
をそれ自体でオーバーライドできます。getDefinitionDescription
このトランザクション定義の識別記述を返します。toString()
結果に含めるために、サブクラスで使用できます。