Annotation Interface SqlConfig


@Target(TYPE) @Retention(RUNTIME) @Documented @Inherited public @interface SqlConfig
@SqlConfig defines metadata that is used to determine how to parse and execute SQL scripts configured via the @Sql annotation.

Configuration Scope

When declared as a class-level annotation on an integration test class, @SqlConfig serves as global configuration for all SQL scripts within the test class hierarchy. When declared directly via the config attribute of the @Sql annotation, @SqlConfig serves as local configuration for the SQL scripts declared within the enclosing @Sql annotation.

Default Values

Every attribute in @SqlConfig has an implicit default value which is documented in the javadocs of the corresponding attribute. Due to the rules defined for annotation attributes in the Java Language Specification, it is unfortunately not possible to assign a value of null to an annotation attribute. Thus, in order to support overrides of inherited global configuration, @SqlConfig attributes have an explicit default value of either "" for Strings, {} for arrays, or DEFAULT for Enums. This approach allows local declarations of @SqlConfig to selectively override individual attributes from global declarations of @SqlConfig by providing a value other than "", {}, or DEFAULT.

Inheritance and Overrides

Global @SqlConfig attributes are inherited whenever local @SqlConfig attributes do not supply an explicit value other than "", {}, or DEFAULT. Explicit local configuration therefore overrides global configuration.

从以下版本开始:
4.0
作者:
Sam Brannen, Tadaya Tsuyukubo
另请参阅:
  • 嵌套类概要

    嵌套类
    修饰符和类型
    说明
    static enum 
    Enumeration of modes that dictate how errors are handled while executing SQL statements.
    static enum 
    Enumeration of modes that dictate whether SQL scripts should be executed within a transaction and what the transaction propagation behavior should be.
  • 可选元素概要

    可选元素
    修饰符和类型
    可选元素
    说明
    The end delimiter that identifies block comments within the SQL scripts.
    The start delimiter that identifies block comments within the SQL scripts.
    The prefix that identifies single-line comments within the SQL scripts.
    The prefixes that identify single-line comments within the SQL scripts.
    The bean name of the DataSource against which the scripts should be executed.
    The encoding for the supplied SQL scripts, if different from the platform encoding.
    The mode to use when an error is encountered while executing an SQL statement.
    The character string used to separate individual statements within the SQL scripts.
    The bean name of the PlatformTransactionManager that should be used to drive transactions.
    The mode to use when determining whether SQL scripts should be executed within a transaction.
  • 元素详细资料

    • dataSource

      String dataSource
      The bean name of the DataSource against which the scripts should be executed.

      The name is only required if there is more than one bean of type DataSource in the test's ApplicationContext. If there is only one such bean, it is not necessary to specify a bean name.

      Defaults to an empty string, requiring that one of the following is true:

      1. An explicit bean name is defined in a global declaration of @SqlConfig.
      2. The data source can be retrieved from the transaction manager by using reflection to invoke a public method named getDataSource() on the transaction manager.
      3. There is only one bean of type DataSource in the test's ApplicationContext.
      4. The DataSource to use is named "dataSource".
      另请参阅:
      默认值:
      ""
    • transactionManager

      String transactionManager
      The bean name of the PlatformTransactionManager that should be used to drive transactions.

      The name is only used if there is more than one bean of type PlatformTransactionManager in the test's ApplicationContext. If there is only one such bean, it is not necessary to specify a bean name.

      Defaults to an empty string, requiring that one of the following is true:

      1. An explicit bean name is defined in a global declaration of @SqlConfig.
      2. There is only one bean of type PlatformTransactionManager in the test's ApplicationContext.
      3. TransactionManagementConfigurer has been implemented to specify which PlatformTransactionManager bean should be used for annotation-driven transaction management.
      4. The PlatformTransactionManager to use is named "transactionManager".
      另请参阅:
      默认值:
      ""
    • transactionMode

      SqlConfig.TransactionMode transactionMode
      The mode to use when determining whether SQL scripts should be executed within a transaction.

      Defaults to DEFAULT.

      Can be set to SqlConfig.TransactionMode.ISOLATED to ensure that the SQL scripts are executed in a new, isolated transaction that will be immediately committed.

      另请参阅:
      默认值:
      DEFAULT
    • encoding

      String encoding
      The encoding for the supplied SQL scripts, if different from the platform encoding.

      An empty string denotes that the platform encoding should be used.

      默认值:
      ""
    • separator

      String separator
      The character string used to separate individual statements within the SQL scripts.

      Implicitly defaults to ";" if not specified and falls back to "\n" as a last resort.

      May be set to ScriptUtils.EOF_STATEMENT_SEPARATOR to signal that each script contains a single statement without a separator.

      另请参阅:
      • ScriptUtils.DEFAULT_STATEMENT_SEPARATOR
      • ScriptUtils.EOF_STATEMENT_SEPARATOR
      默认值:
      ""
    • commentPrefix

      String commentPrefix
      The prefix that identifies single-line comments within the SQL scripts.

      Implicitly defaults to "--".

      This attribute may not be used in conjunction with commentPrefixes, but it may be used instead of commentPrefixes.

      另请参阅:
      默认值:
      ""
    • commentPrefixes

      String[] commentPrefixes
      The prefixes that identify single-line comments within the SQL scripts.

      Implicitly defaults to ["--"].

      This attribute may not be used in conjunction with commentPrefix, but it may be used instead of commentPrefix.

      从以下版本开始:
      4.0
      另请参阅:
      默认值:
      {}
    • blockCommentStartDelimiter

      String blockCommentStartDelimiter
      The start delimiter that identifies block comments within the SQL scripts.

      Implicitly defaults to "/*".

      另请参阅:
      默认值:
      ""
    • blockCommentEndDelimiter

      String blockCommentEndDelimiter
      The end delimiter that identifies block comments within the SQL scripts.

      Implicitly defaults to "*/".

      另请参阅:
      默认值:
      ""
    • errorMode

      The mode to use when an error is encountered while executing an SQL statement.

      Defaults to DEFAULT.

      另请参阅:
      默认值:
      DEFAULT