@TargetSE(valueSE=TYPESE) @RetentionSE(valueSE=RUNTIMESE) @DocumentedSE @InheritedSE public @interface SqlConfig
@SqlConfig は、@Sql アノテーションを介して構成された SQL スクリプトを解析および実行する方法を決定するために使用されるメタデータを定義します。 統合テストクラスでクラスレベルのアノテーションとして宣言されると、@SqlConfig はテストクラス階層内のすべての SQL スクリプトのグローバル構成として機能します。@Sql アノテーションの config 属性を介して直接宣言された場合、@SqlConfig は、囲む @Sql アノテーション内で宣言された SQL スクリプトのローカル構成として機能します。
@SqlConfig のすべての属性には、対応する属性の javadoc に記載されている暗黙のデフォルト値があります。Java 言語仕様でアノテーション属性に定義されている規則により、残念ながら、null の値をアノテーション属性に割り当てることはできません。継承されたグローバル構成のオーバーライドをサポートするために、@SqlConfig 属性には、文字列の場合は ""、列挙型の場合は DEFAULT のいずれかの明示的な default 値があります。このアプローチにより、@SqlConfig のローカル宣言は、"" または DEFAULT 以外の値を提供することにより、@SqlConfig のグローバル宣言から個々の属性を選択的にオーバーライドできます。
グローバル @SqlConfig 属性は、ローカル @SqlConfig 属性が "" または DEFAULT 以外の明示的な値を提供しない場合は常に継承されます。明示的なローカル構成はグローバル構成をオーバーライドします。
Sql| 修飾子と型 | オプションの要素と説明 |
|---|---|
StringSE | blockCommentEndDelimiterSQL スクリプト内のブロックコメントを識別する終了区切り文字。 |
StringSE | blockCommentStartDelimiterSQL スクリプト内のブロックコメントを識別する開始区切り文字。 |
StringSE | commentPrefixSQL スクリプト内の単一行コメントを識別するプレフィックス。 |
StringSE | dataSource スクリプトが実行される DataSourceSE の Bean 名。 |
StringSE | encoding プラットフォームエンコーディングと異なる場合、提供された SQL スクリプトのエンコーディング。 |
SqlConfig.ErrorMode | errorModeSQL ステートメントの実行中にエラーが発生したときに使用するモード。 |
StringSE | separatorSQL スクリプト内の個々のステートメントを区切るために使用される文字列。 |
StringSE | transactionManager トランザクションを駆動するために使用される PlatformTransactionManager の Bean 名。 |
SqlConfig.TransactionMode | transactionMode トランザクション内で SQL スクリプトを実行するかどうかを決定するときに使用するモード。 |
public abstract StringSE dataSource
DataSourceSE の Bean 名。 この名前は、テストの ApplicationContext に型 DataSource の Bean が複数ある場合にのみ必要です。そのような Bean が 1 つしかない場合、Bean 名を指定する必要はありません。
デフォルトは空の文字列で、次のいずれかに該当する必要があります。
@SqlConfig のグローバル宣言で定義されています。getDataSource() という名前の public メソッドを呼び出すことにより、トランザクションマネージャーからデータソースを取得できます。ApplicationContext には、型 DataSource の Bean が 1 つだけあります。DataSource の名前は "dataSource" です。public abstract StringSE transactionManager
PlatformTransactionManager の Bean 名。 この名前は、テストの ApplicationContext に型 PlatformTransactionManager の Bean が複数ある場合にのみ使用されます。そのような Bean が 1 つしかない場合、Bean 名を指定する必要はありません。
デフォルトは空の文字列で、次のいずれかに該当する必要があります。
@SqlConfig のグローバル宣言で定義されています。ApplicationContext には、型 PlatformTransactionManager の Bean が 1 つだけあります。TransactionManagementConfigurer は、どの PlatformTransactionManager Bean をアノテーション駆動のトランザクション管理に使用するかを指定するために実装されました。PlatformTransactionManager の名前は "transactionManager" です。public abstract SqlConfig.TransactionMode transactionMode
デフォルトは DEFAULT です。
SqlConfig.TransactionMode.ISOLATED に設定すると、すぐにコミットされる新しい分離トランザクションで SQL スクリプトが確実に実行されます。
public abstract StringSE encoding
空の文字列は、プラットフォームエンコーディングを使用する必要があることを示します。
public abstract StringSE separator
指定しない場合は暗黙的に ";" にデフォルト設定され、最後の手段として "\n" にフォールバックします。
ScriptUtils.EOF_STATEMENT_SEPARATOR に設定して、各スクリプトに区切りなしの単一のステートメントが含まれていることを通知できます。
public abstract StringSE commentPrefix
暗黙的に "--" がデフォルトになります。
public abstract StringSE blockCommentStartDelimiter
暗黙的に "/*" がデフォルトになります。
public abstract StringSE blockCommentEndDelimiter
暗黙的に "*/" がデフォルトになります。
public abstract SqlConfig.ErrorMode errorMode
デフォルトは DEFAULT です。
SqlConfig.ErrorMode