Annotation Interface DataJpaTest


Annotation for a JPA test that focuses only on JPA components.

Using this annotation will disable full auto-configuration and instead apply only configuration relevant to JPA tests.

By default, tests annotated with @DataJpaTest are transactional and roll back at the end of each test. They also use an embedded in-memory database (replacing any explicit or usually auto-configured DataSource). The @AutoConfigureTestDatabase annotation can be used to override these settings.

SQL queries are logged by default by setting the spring.jpa.show-sql property to true. This can be disabled using the showSql attribute.

If you are looking to load your full application configuration, but use an embedded database, you should consider @SpringBootTest combined with @AutoConfigureTestDatabase rather than this annotation.

When using JUnit 4, this annotation should be used in combination with @RunWith(SpringRunner.class).

Since:
1.4.0
Author:
Phillip Webb, Artsiom Yudovin, Scott Frederick
See Also:
  • Element Details

    • properties

      String[] properties
      Properties in form key=value that should be added to the Spring Environment before the test runs.
      Returns:
      the properties to add
      Since:
      2.1.0
      Default:
      {}
    • showSql

      @PropertyMapping("spring.jpa.show-sql") boolean showSql
      If SQL output should be logged.
      Returns:
      if SQL is logged
      Default:
      true
    • bootstrapMode

      @PropertyMapping("spring.data.jpa.repositories.bootstrap-mode") org.springframework.data.repository.config.BootstrapMode bootstrapMode
      The BootstrapMode for the test repository support. Defaults to BootstrapMode.DEFAULT.
      Returns:
      the BootstrapMode to use for testing the repository
      Default:
      DEFAULT
    • useDefaultFilters

      boolean useDefaultFilters
      Determines if default filtering should be used with @SpringBootApplication. By default no beans are included.
      Returns:
      if default filters should be used
      See Also:
      Default:
      true
    • includeFilters

      ComponentScan.Filter[] includeFilters
      A set of include filters which can be used to add otherwise filtered beans to the application context.
      Returns:
      include filters to apply
      Default:
      {}
    • excludeFilters

      ComponentScan.Filter[] excludeFilters
      A set of exclude filters which can be used to filter beans that would otherwise be added to the application context.
      Returns:
      exclude filters to apply
      Default:
      {}
    • excludeAutoConfiguration

      @AliasFor(annotation=ImportAutoConfiguration.class, attribute="exclude") Class<?>[] excludeAutoConfiguration
      Auto-configuration exclusions that should be applied for this test.
      Returns:
      auto-configuration exclusions to apply
      Default:
      {}