Сканирование для определения указанной c сущности в тестовом срезе Spring - PullRequest
0 голосов
/ 17 февраля 2020

Я создаю интеграционный тест с @WebMvcTest, который импортирует следующую конфигурацию:

    @ComponentScan(
            basePackageClasses = {
                    DummyComponent.class
            },
            useDefaultFilters = false,
            includeFilters = {
                    @ComponentScan.Filter(type = ASSIGNABLE_TYPE, value = DummyComponent.class)
            }
    )

    @Configuration
    @EnableJpaRepositories(
            basePackageClasses = {
                    DummyRepository.class
            },
            includeFilters = {
                    @ComponentScan.Filter(type = ASSIGNABLE_TYPE, value = DummyRepository.class)
            }
    )
    public class DummyWebMvcConfig {

        private static String[] MODEL_PACKAGES = {
                "my.dummy.entity.package"
        };

        @Bean
        public DataSource getDataSource() {
            EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder();
            return builder.setType(EmbeddedDatabaseType.H2).build();
        }

        @Bean
        public EntityManagerFactory entityManagerFactory() {
            HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
            vendorAdapter.setGenerateDdl(true);
            vendorAdapter.setShowSql(true);

            LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
            factory.setJpaVendorAdapter(vendorAdapter);
            factory.setPackagesToScan(MODEL_PACKAGES);

            factory.setDataSource(getDataSource());
            factory.afterPropertiesSet();

            return factory.getObject();
        }

        @Bean
        public PlatformTransactionManager transactionManager() {
            JpaTransactionManager txManager = new JpaTransactionManager();
            txManager.setEntityManagerFactory(entityManagerFactory());
            return txManager;
        }
    }

Когда дело доходит до компонентов и репозиториев, я могу отфильтровать все ненужные, используя basePackageClasses и * 1006. * для @ComponentScan и @EnableJpaRepositories, таким образом загружая только DummyComponent, DummyRepository.

К сожалению, я загружаю каждую сущность, присутствующую в my.dummy.entity.package, и не знаю, как загрузить исключительно DummyEntity. Можно ли (и если да, то как) выбрать только один объект из пакета?

Спасибо за вашу помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...