'@DataJpaTest failing when converted to Java Modules

I have tried everything and am pulling my hair out which is really bad because I don't have much left :P

I have a multimodule maven project which I am modularizing (Java modules).

I have several modules: domain, persistence and service, and something is seriously wrong testing the persistence layer. When I use the persistence module in the service layer it works fine. I am getting Negative Matches on the Conditions Evaluation Report. I suspect I am missing something in my module-info.java file.

I am using OpenJdk 14 targeted at Java 11 with SpringBoot 2.6.2, I would greatly appreciate any insight or can point me to a modularized spring boot project with tests for the persistence layer I would really appreciate it.

I have tried not having the persistence layer as a module but then you get 'does not read the unnamed module' errors in the service layer. This should work but I've been messing about for a few weeks now.

In my domain module I have:

@Entity(name = "product")
@Table(name = "product")
@SuperBuilder(toBuilder = true)
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
public class Product extends AbstractEntity {
    /***
     * stock keeping unit e.g. FX-IL-51-150
     */
    @Column(name = "product_sku", unique = true)
    private String sku;

    /***
     * manufacturers part number e.g. EEP130121001
     */
    @Column(name = "product_mpn", unique = true)
    private String mpn;

    /***
     * name of the product e.g. Ilok Flex 51mm ID x 150mm Long
     */
    @Column(name = "product_name")
    private String name;

    /***
     * description of the product e.g. Ilok lined flex, 100% stainless steel
     */
    @Column(name = "product_description", length = 1000)
    private String description;

    /***
     * The details associated with this product.  OneToMany used because the amount of details associated with a product
     * is likely to be small
     */
    @Builder.Default
    @OneToMany(mappedBy = "product", cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.EAGER)
    private List<ProductDetail> productDetailList = new ArrayList<>();
}

module-info.java for domain, there is a lot of redundant requires in there because I tried putting the persistence layer in the domain module. At one point I was getting unmanaged type errors.

open module salesforce.domain {
    requires com.fasterxml.jackson.annotation;

    requires org.hibernate.orm.core;

    requires java.persistence;
    requires java.sql;
    requires java.validation;

    requires lombok;

    requires net.bytebuddy;

    requires spring.beans;
    requires spring.boot;
    requires spring.boot.autoconfigure;
    requires spring.context;
    requires spring.core;
    requires spring.data.commons;
    requires spring.data.jpa;
    requires spring.jdbc;
    requires spring.orm;
    requires spring.tx;

    exports com.eep.salesforce.domain;
    //exports com.eep.salesforce.persistence;

}

In the persistence module I have the following:

@Repository
public interface ProductRepository extends JpaRepository<Product, Long> {
    /***
     * Finds a product by it's sku
     * @param sku - the sku to search by
     * @return an optional containing the product if it exists
     */
    Optional<Product> findProductBySku(String sku);

    /***
     * Finds a product by it's mpn
     * @param mpn - the mpn to search by
     * @return an option containing the product if it exists
     */
    Optional<Product> findProductByMpn(String mpn);

    /***
     * Finds a product by it's uid
     * @param uid - the uid to search for
     * @return an optional containing the product if it exists else an empty Optional
     */
    Optional<Product> findProductByUid(UUID uid);

    /***
     * Deletes the product by it's uid (unique identifier)
     * @param uid - the uid to delete
     */
    void deleteByUid(UUID uid);

    /***
     * Returns a list of products by UIDs
     * @param uids a list of uids
     * @return a list of Product
     */
    List<Product> findProductsByUidIn(List<UUID> uids);
}

module-info.java for persistence is:

open module persistence {
    requires salesforce.domain;

    requires com.fasterxml.jackson.annotation;

    requires org.hibernate.orm.core;

    requires java.persistence;
    requires java.sql;
    requires java.validation;

    requires net.bytebuddy;

    requires spring.beans;
    requires spring.core;
    requires spring.context;
    requires spring.tx;
    requires spring.data.commons;
    requires spring.data.jpa;
    requires spring.boot;
    requires spring.boot.autoconfigure;

    exports com.eep.salesforce.repos;

    //opens com.eep.salesforce to spring.core;
}

the ProductRepositoryTest looks like the following:

@DataJpaTest
class ProductRepositoryTest {
    @Autowired
    ProductRepository productRepository;

    @Autowired
    TestEntityManager testEntityManager;

    private Product product1;
    private Product product2;
    private Product product3;
    private Product product4;


    @BeforeEach
    void setup() {
        product1 = Product.builder()
                .name("2 inch flex x 4 inch")
                .mpn("EEP25012201")
                .sku("FX-50-100-I")
                .build();

        product2 = Product.builder().name("2 inch flex x 6 inch")
                .mpn("EEP25012202")
                .sku("FX-50-150-I")
                .build();
        product3 = Product.builder()
                .name("2 inch flex x 8 inch")
                .mpn("EEP25012203")
                .sku("FX-50-200-I")
                .build();

        product4 = Product.builder().name("2 inch flex x 10 inch")
                .mpn("EEP25012204")
                .sku("FX-50-250-I")
                .build();


    }

    @Test
    void setupTest() {
        assertAll(
                () -> assertNotNull(productRepository),
                () -> assertNotNull(testEntityManager)
        );
    }

    @Test
    void findProductBySkuTest() {
        product1 = testEntityManager.persistAndFlush(product1);
        product2 = testEntityManager.persistAndFlush(product2);

        var product = productRepository.findProductBySku("FX-50-150-I");

        assertAll(
                () -> assertTrue(product.isPresent()),
                () -> assertEquals(product, Optional.of(product2))
        );
    }

    @Test
    void findProductByNonExistantSkuReturnsOptionalEmptyTest() {
        product1 = testEntityManager.persistAndFlush(product1);
        product2 = testEntityManager.persistAndFlush(product2);

        var product = productRepository.findProductBySku("FX-50-200-I");

        assertAll(
                () -> assertFalse(product.isPresent()),
                () -> assertEquals(product, Optional.empty())
        );
    }

    @Test
    void findProductByMpnTest() {
        product1 = testEntityManager.persistAndFlush(product1);
        product2 = testEntityManager.persistAndFlush(product2);

        var product = productRepository.findProductByMpn("EEP25012201");

        assertAll(
                () -> assertTrue(product.isPresent()),
                () -> assertEquals(product, Optional.of(product1))
        );
    }

    @Test
    void findProductByNonExistantMpnReturnsOptionalEmptyTest() {
        product1 = testEntityManager.persistAndFlush(product1);
        product2 = testEntityManager.persistAndFlush(product2);

        var product = productRepository.findProductByMpn("EEP25012204");

        assertAll(
                () -> assertFalse(product.isPresent()),
                () -> assertEquals(product, Optional.empty())
        );
    }

    @Test
    void findProductByUidTest() {
        product1 = testEntityManager.persistAndFlush(product1);
        product2 = testEntityManager.persistAndFlush(product2);

        var product = productRepository.findProductByUid(product2.getUid());

        assertAll(
                () -> assertTrue(product.isPresent()),
                () -> assertEquals(product, Optional.of(product2))
        );
    }

    @Test
    void findProductByNonExistantUidReturnsOptionalEmptyTest() {
        product1 = testEntityManager.persistAndFlush(product1);
        product2 = testEntityManager.persistAndFlush(product2);

        var uid = UUID.randomUUID();
        //should theoretically never happen...
        while(uid.equals(product1.getUid()))
            uid = UUID.randomUUID();

        var product = productRepository.findProductByUid(uid);

        assertAll(
                () -> assertFalse(product.isPresent()),
                () -> assertEquals(product, Optional.empty())
        );
    }

    @Test
    void deleteByUidTest() {
        product1 = testEntityManager.persistAndFlush(product1);
        product2 = testEntityManager.persistAndFlush(product2);

        UUID uid = product1.getUid();

        var product = productRepository.findProductByUid(uid);

        productRepository.deleteByUid(uid);

        var product2 = productRepository.findProductByUid(uid);

        assertAll(
                () -> assertTrue(product.isPresent()),
                () -> assertFalse(product2.isPresent()),
                () -> assertEquals(product, Optional.of(product1)),
                () -> assertEquals(product2, Optional.empty())
        );
    }

    @Test
    void findProductsByUidsInTest() {
        product1 = testEntityManager.persistAndFlush(product1);
        product2 = testEntityManager.persistAndFlush(product2);
        product3 = testEntityManager.persistAndFlush(product3);
        product4 = testEntityManager.persistAndFlush(product4);

        var products = productRepository.findProductsByUidIn(Arrays.asList(
                product1.getUid(),
                product3.getUid()
        ));

        assertAll(
                () -> assertEquals(products.size(), 2),
                () -> assertTrue(products.containsAll(Arrays.asList(product1, product3)))
        );
    }

    @Test
    void findProductsByNonexistantUidsInTest() {
        product1 = testEntityManager.persistAndFlush(product1);
        product2 = testEntityManager.persistAndFlush(product2);
        product3 = testEntityManager.persistAndFlush(product3);
        product4 = testEntityManager.persistAndFlush(product4);

        var products = productRepository.findProductsByUidIn(Arrays.asList(
                UUID.randomUUID(),
                product2.getUid(),
                product3.getUid()
        ));

        assertAll(
                () -> assertEquals(products.size(), 2),
                () -> assertTrue(products.containsAll(Arrays.asList(product2, product3)))
        );
    }
}

and the test configuration is coming from @SpringBootApplication in PersistenceApplicationTests.java

@SpringBootApplication
@EntityScan("com.eep.salesforce.domain")
class PersistenceApplicationTests {

    public static void main(String[] args) {
        SpringApplication.run(PersistenceApplicationTests.class, args);
    }

}

The error I am getting is

============================
CONDITIONS EVALUATION REPORT
============================


Positive matches:
-----------------

   DataSourceAutoConfiguration matched:
      - @ConditionalOnClass found required classes 'javax.sql.DataSource', 'org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType' (OnClassCondition)
      - @ConditionalOnMissingBean (types: io.r2dbc.spi.ConnectionFactory; SearchStrategy: all) did not find any beans (OnBeanCondition)

   DataSourceAutoConfiguration.PooledDataSourceConfiguration matched:
      - AnyNestedCondition 1 matched 1 did not; NestedCondition on DataSourceAutoConfiguration.PooledDataSourceCondition.PooledDataSourceAvailable PooledDataSource found supported DataSource; NestedCondition on DataSourceAutoConfiguration.PooledDataSourceCondition.ExplicitType @ConditionalOnProperty (spring.datasource.type) did not find property 'type' (DataSourceAutoConfiguration.PooledDataSourceCondition)
      - @ConditionalOnMissingBean (types: javax.sql.DataSource,javax.sql.XADataSource; SearchStrategy: all) did not find any beans (OnBeanCondition)

   DataSourceConfiguration.Hikari matched:
      - @ConditionalOnClass found required class 'com.zaxxer.hikari.HikariDataSource' (OnClassCondition)
      - @ConditionalOnProperty (spring.datasource.type=com.zaxxer.hikari.HikariDataSource) matched (OnPropertyCondition)
      - @ConditionalOnMissingBean (types: javax.sql.DataSource; SearchStrategy: all) did not find any beans (OnBeanCondition)

   DataSourceInitializationConfiguration matched:
      - @ConditionalOnClass found required class 'org.springframework.jdbc.datasource.init.DatabasePopulator' (OnClassCondition)
      - @ConditionalOnSingleCandidate (types: javax.sql.DataSource; SearchStrategy: all) found a primary bean from beans 'dataSource'; @ConditionalOnMissingBean (types: org.springframework.boot.autoconfigure.sql.init.SqlDataSourceScriptDatabaseInitializer,org.springframework.boot.autoconfigure.sql.init.SqlR2dbcScriptDatabaseInitializer; SearchStrategy: all) did not find any beans (OnBeanCondition)

   DataSourcePoolMetadataProvidersConfiguration.HikariPoolDataSourceMetadataProviderConfiguration matched:
      - @ConditionalOnClass found required class 'com.zaxxer.hikari.HikariDataSource' (OnClassCondition)

   DataSourceTransactionManagerAutoConfiguration matched:
      - @ConditionalOnClass found required classes 'org.springframework.jdbc.core.JdbcTemplate', 'org.springframework.transaction.TransactionManager' (OnClassCondition)

   DataSourceTransactionManagerAutoConfiguration.JdbcTransactionManagerConfiguration matched:
      - @ConditionalOnSingleCandidate (types: javax.sql.DataSource; SearchStrategy: all) found a primary bean from beans 'dataSource' (OnBeanCondition)

   HibernateJpaAutoConfiguration matched:
      - @ConditionalOnClass found required classes 'org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean', 'javax.persistence.EntityManager', 'org.hibernate.engine.spi.SessionImplementor' (OnClassCondition)

   HibernateJpaConfiguration matched:
      - @ConditionalOnSingleCandidate (types: javax.sql.DataSource; SearchStrategy: all) found a primary bean from beans 'dataSource' (OnBeanCondition)

   JdbcTemplateAutoConfiguration matched:
      - @ConditionalOnClass found required classes 'javax.sql.DataSource', 'org.springframework.jdbc.core.JdbcTemplate' (OnClassCondition)
      - @ConditionalOnSingleCandidate (types: javax.sql.DataSource; SearchStrategy: all) found a primary bean from beans 'dataSource' (OnBeanCondition)

   JdbcTemplateConfiguration matched:
      - @ConditionalOnMissingBean (types: org.springframework.jdbc.core.JdbcOperations; SearchStrategy: all) did not find any beans (OnBeanCondition)

   JpaBaseConfiguration#entityManagerFactory matched:
      - @ConditionalOnMissingBean (types: org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean,javax.persistence.EntityManagerFactory; SearchStrategy: all) did not find any beans (OnBeanCondition)

   JpaBaseConfiguration#entityManagerFactoryBuilder matched:
      - @ConditionalOnMissingBean (types: org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder; SearchStrategy: all) did not find any beans (OnBeanCondition)

   JpaBaseConfiguration#jpaVendorAdapter matched:
      - @ConditionalOnMissingBean (types: org.springframework.orm.jpa.JpaVendorAdapter; SearchStrategy: all) did not find any beans (OnBeanCondition)

   JpaBaseConfiguration#transactionManager matched:
      - @ConditionalOnMissingBean (types: org.springframework.transaction.TransactionManager; SearchStrategy: all) did not find any beans (OnBeanCondition)

   JpaRepositoriesAutoConfiguration matched:
      - @ConditionalOnClass found required class 'org.springframework.data.jpa.repository.JpaRepository' (OnClassCondition)
      - @ConditionalOnProperty (spring.data.jpa.repositories.enabled=true) matched (OnPropertyCondition)
      - @ConditionalOnBean (types: javax.sql.DataSource; SearchStrategy: all) found bean 'dataSource'; @ConditionalOnMissingBean (types: org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean,org.springframework.data.jpa.repository.config.JpaRepositoryConfigExtension; SearchStrategy: all) did not find any beans (OnBeanCondition)

   NamedParameterJdbcTemplateConfiguration matched:
      - @ConditionalOnSingleCandidate (types: org.springframework.jdbc.core.JdbcTemplate; SearchStrategy: all) found a primary bean from beans 'jdbcTemplate'; @ConditionalOnMissingBean (types: org.springframework.jdbc.core.namedparam.NamedParameterJdbcOperations; SearchStrategy: all) did not find any beans (OnBeanCondition)

   NoOpCacheConfiguration matched:
      - Cache org.springframework.boot.autoconfigure.cache.NoOpCacheConfiguration NONE cache type (CacheCondition)

   SqlInitializationAutoConfiguration matched:
      - @ConditionalOnProperty (spring.sql.init.enabled) matched (OnPropertyCondition)
      - NoneNestedConditions 0 matched 1 did not; NestedCondition on SqlInitializationAutoConfiguration.SqlInitializationModeCondition.ModeIsNever @ConditionalOnProperty (spring.sql.init.mode=never) did not find property 'mode' (SqlInitializationAutoConfiguration.SqlInitializationModeCondition)

   TestDatabaseAutoConfiguration#embeddedDataSourceBeanFactoryPostProcessor matched:
      - @ConditionalOnProperty (spring.test.database.replace=ANY) matched (OnPropertyCondition)

   TestEntityManagerAutoConfiguration matched:
      - @ConditionalOnClass found required class 'javax.persistence.EntityManagerFactory' (OnClassCondition)

   TestEntityManagerAutoConfiguration#testEntityManager matched:
      - @ConditionalOnMissingBean (types: org.springframework.boot.test.autoconfigure.orm.jpa.TestEntityManager; SearchStrategy: all) did not find any beans (OnBeanCondition)

   TransactionAutoConfiguration matched:
      - @ConditionalOnClass found required class 'org.springframework.transaction.PlatformTransactionManager' (OnClassCondition)

   TransactionAutoConfiguration#platformTransactionManagerCustomizers matched:
      - @ConditionalOnMissingBean (types: org.springframework.boot.autoconfigure.transaction.TransactionManagerCustomizers; SearchStrategy: all) did not find any beans (OnBeanCondition)

   TransactionAutoConfiguration.EnableTransactionManagementConfiguration matched:
      - @ConditionalOnBean (types: org.springframework.transaction.TransactionManager; SearchStrategy: all) found bean 'transactionManager'; @ConditionalOnMissingBean (types: org.springframework.transaction.annotation.AbstractTransactionManagementConfiguration; SearchStrategy: all) did not find any beans (OnBeanCondition)

   TransactionAutoConfiguration.EnableTransactionManagementConfiguration.CglibAutoProxyConfiguration matched:
      - @ConditionalOnProperty (spring.aop.proxy-target-class=true) matched (OnPropertyCondition)

   TransactionAutoConfiguration.TransactionTemplateConfiguration matched:
      - @ConditionalOnSingleCandidate (types: org.springframework.transaction.PlatformTransactionManager; SearchStrategy: all) found a primary bean from beans 'transactionManager' (OnBeanCondition)

   TransactionAutoConfiguration.TransactionTemplateConfiguration#transactionTemplate matched:
      - @ConditionalOnMissingBean (types: org.springframework.transaction.support.TransactionOperations; SearchStrategy: all) did not find any beans (OnBeanCondition)


Negative matches:
-----------------

   CacheAutoConfiguration:
      Did not match:
         - @ConditionalOnBean (types: org.springframework.cache.interceptor.CacheAspectSupport; SearchStrategy: all) did not find any beans of type org.springframework.cache.interceptor.CacheAspectSupport (OnBeanCondition)
      Matched:
         - @ConditionalOnClass found required class 'org.springframework.cache.CacheManager' (OnClassCondition)

   CacheAutoConfiguration.CacheManagerEntityManagerFactoryDependsOnPostProcessor:
      Did not match:
         - Ancestor org.springframework.boot.autoconfigure.cache.CacheAutoConfiguration did not match (ConditionEvaluationReport.AncestorsMatchedCondition)
      Matched:
         - @ConditionalOnClass found required class 'org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean' (OnClassCondition)

   CaffeineCacheConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'com.github.benmanes.caffeine.cache.Caffeine' (OnClassCondition)

   CouchbaseCacheConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'com.couchbase.client.java.Cluster' (OnClassCondition)

   DataSourceAutoConfiguration.EmbeddedDatabaseConfiguration:
      Did not match:
         - EmbeddedDataSource spring.datasource.url is set (DataSourceAutoConfiguration.EmbeddedDatabaseCondition)

   DataSourceConfiguration.Dbcp2:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.apache.commons.dbcp2.BasicDataSource' (OnClassCondition)

   DataSourceConfiguration.Generic:
      Did not match:
         - @ConditionalOnProperty (spring.datasource.type) did not find property 'spring.datasource.type' (OnPropertyCondition)

   DataSourceConfiguration.OracleUcp:
      Did not match:
         - @ConditionalOnClass did not find required classes 'oracle.ucp.jdbc.PoolDataSourceImpl', 'oracle.jdbc.OracleConnection' (OnClassCondition)

   DataSourceConfiguration.Tomcat:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.apache.tomcat.jdbc.pool.DataSource' (OnClassCondition)

   DataSourceInitializationConfiguration.InitializationSpecificCredentialsDataSourceInitializationConfiguration:
      Did not match:
         - AnyNestedCondition 0 matched 2 did not; NestedCondition on DataSourceInitializationConfiguration.InitializationSpecificCredentialsDataSourceInitializationConfiguration.DifferentCredentialsCondition.DataCredentials @ConditionalOnProperty (spring.datasource.data-username) did not find property 'data-username'; NestedCondition on DataSourceInitializationConfiguration.InitializationSpecificCredentialsDataSourceInitializationConfiguration.DifferentCredentialsCondition.SchemaCredentials @ConditionalOnProperty (spring.datasource.schema-username) did not find property 'schema-username' (DataSourceInitializationConfiguration.InitializationSpecificCredentialsDataSourceInitializationConfiguration.DifferentCredentialsCondition)

   DataSourceInitializationConfiguration.SharedCredentialsDataSourceInitializationConfiguration:
      Did not match:
         - DataSource Initialization did not find configured properties spring.datasource.data-username, spring.datasource.schema-password, spring.datasource.schema[0], spring.datasource.data[0], spring.datasource.data, spring.datasource.schema-username, spring.datasource.data-password, spring.datasource.initialization-mode, spring.datasource.schema, spring.datasource.sql-script-encoding, spring.datasource.separator, spring.datasource.platform, spring.datasource.continue-on-error (DataSourceInitializationConfiguration.SharedCredentialsDataSourceInitializationConfiguration.DataSourceInitializationCondition)

   DataSourceJmxConfiguration:
      Did not match:
         - @ConditionalOnProperty (spring.jmx.enabled=true) found different value in property 'enabled' (OnPropertyCondition)

   DataSourcePoolMetadataProvidersConfiguration.CommonsDbcp2PoolDataSourceMetadataProviderConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.apache.commons.dbcp2.BasicDataSource' (OnClassCondition)

   DataSourcePoolMetadataProvidersConfiguration.OracleUcpPoolDataSourceMetadataProviderConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'oracle.ucp.jdbc.PoolDataSource', 'oracle.jdbc.OracleConnection' (OnClassCondition)

   DataSourcePoolMetadataProvidersConfiguration.TomcatDataSourcePoolMetadataProviderConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.apache.tomcat.jdbc.pool.DataSource' (OnClassCondition)

   DataSourceTransactionManagerAutoConfiguration.JdbcTransactionManagerConfiguration#transactionManager:
      Did not match:
         - @ConditionalOnMissingBean (types: org.springframework.transaction.TransactionManager; SearchStrategy: all) found beans of type 'org.springframework.transaction.TransactionManager' transactionManager (OnBeanCondition)

   EhCacheCacheConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'net.sf.ehcache.Cache' (OnClassCondition)

   FlywayAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.flywaydb.core.Flyway' (OnClassCondition)

   GenericCacheConfiguration:
      Did not match:
         - Cache org.springframework.boot.autoconfigure.cache.GenericCacheConfiguration unknown cache type (CacheCondition)

   HazelcastCacheConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'com.hazelcast.core.HazelcastInstance' (OnClassCondition)

   InfinispanCacheConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.infinispan.spring.embedded.provider.SpringEmbeddedCacheManager' (OnClassCondition)

   JCacheCacheConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'javax.cache.Caching' (OnClassCondition)

   JpaBaseConfiguration.JpaWebConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.web.servlet.config.annotation.WebMvcConfigurer' (OnClassCondition)

   JpaRepositoriesAutoConfiguration#entityManagerFactoryBootstrapExecutorCustomizer:
      Did not match:
         - AnyNestedCondition 0 matched 2 did not; NestedCondition on JpaRepositoriesAutoConfiguration.BootstrapExecutorCondition.LazyBootstrapMode @ConditionalOnProperty (spring.data.jpa.repositories.bootstrap-mode=lazy) found different value in property 'bootstrap-mode'; NestedCondition on JpaRepositoriesAutoConfiguration.BootstrapExecutorCondition.DeferredBootstrapMode @ConditionalOnProperty (spring.data.jpa.repositories.bootstrap-mode=deferred) found different value in property 'bootstrap-mode' (JpaRepositoriesAutoConfiguration.BootstrapExecutorCondition)

   LiquibaseAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'liquibase.change.DatabaseChange' (OnClassCondition)

   R2dbcInitializationConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'io.r2dbc.spi.ConnectionFactory', 'org.springframework.r2dbc.connection.init.DatabasePopulator' (OnClassCondition)

   RedisCacheConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.data.redis.connection.RedisConnectionFactory' (OnClassCondition)

   SimpleCacheConfiguration:
      Did not match:
         - Cache org.springframework.boot.autoconfigure.cache.SimpleCacheConfiguration unknown cache type (CacheCondition)

   TestDatabaseAutoConfiguration#dataSource:
      Did not match:
         - @ConditionalOnProperty (spring.test.database.replace=AUTO_CONFIGURED) did not find property 'replace' (OnPropertyCondition)

   TransactionAutoConfiguration#transactionalOperator:
      Did not match:
         - @ConditionalOnSingleCandidate (types: org.springframework.transaction.ReactiveTransactionManager; SearchStrategy: all) did not find any beans (OnBeanCondition)

   TransactionAutoConfiguration.EnableTransactionManagementConfiguration.JdkDynamicAutoProxyConfiguration:
      Did not match:
         - @ConditionalOnProperty (spring.aop.proxy-target-class=false) did not find property 'proxy-target-class' (OnPropertyCondition)


Exclusions:
-----------

    None


Unconditional classes:
----------------------

    org.springframework.boot.test.autoconfigure.jdbc.TestDatabaseAutoConfiguration


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source