spring-framework / org.springframework.test.context.jdbc / Sql / <init>

<init>

Sql(vararg value: String, scripts: Array<String>, statements: Array<String>, executionPhase: ExecutionPhase, config: SqlConfig)

@Sql is used to annotate a test class or test method to configure SQL #scripts and #statements to be executed against a given database during integration tests.

Method-level declarations override class-level declarations.

Script execution is performed by the SqlScriptsTestExecutionListener, which is enabled by default.

The configuration options provided by this annotation and SqlConfig are equivalent to those supported by org.springframework.jdbc.datasource.init.ScriptUtils and org.springframework.jdbc.datasource.init.ResourceDatabasePopulator but are a superset of those provided by the <jdbc:initialize-database/> XML namespace element. Consult the javadocs of individual attributes in this annotation and SqlConfig for details.

Beginning with Java 8, @Sql can be used as a Repeatable annotation. Otherwise, SqlGroup can be used as an explicit container for declaring multiple instances of @Sql.

This annotation may be used as a meta-annotation to create custom composed annotations with attribute overrides.

Author
Sam Brannen

Since
4.1

See Also
SqlConfigSqlGroupSqlScriptsTestExecutionListenerorg.springframework.transaction.annotation.Transactionalorg.springframework.test.context.transaction.TransactionalTestExecutionListenerorg.springframework.jdbc.datasource.init.ResourceDatabasePopulatororg.springframework.jdbc.datasource.init.ScriptUtils