Я создаю интеграционный тест с @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
. Можно ли (и если да, то как) выбрать только один объект из пакета?
Спасибо за вашу помощь.