ClickhouseConfig.java
@Configuration
@EntityScan(basePackages = "test.entity.clickhouse")
@EnableJpaRepositories(
basePackages = "test.repository.clickhouse",
entityManagerFactoryRef = "clickhouseEntityManagerFactory",
transactionManagerRef = "clickhouseTransactionManager",
repositoryBaseClass = BaseRepositoryImpl.class)
// enableDefaultTransactions = false)
@EnableTransactionManagement
public class ClickhouseConfig {
@Autowired
@Qualifier("clickhouseDataSource")
private DataSource dataSource;
@Autowired
@Qualifier("vendorClickhouseProperties")
private Map<String, Object> vendorProperties;
@Bean(name = "clickhouseEntityManagerFactory")
public LocalContainerEntityManagerFactoryBean clickhouseEntityManagerFactory(EntityManagerFactoryBuilder builder) {
return builder
.dataSource(dataSource)
.properties(vendorProperties)
.packages("com.zcunsoft.tracking.report.entity.clickhouse")
.persistenceUnit("clickhousePersistenceUnit")
.build();
}
@Bean(name = "clickhouseEntityManager")
public EntityManager entityManager(EntityManagerFactoryBuilder builder) {
return clickhouseEntityManagerFactory(builder).getObject().createEntityManager();
}
@Bean(name = "clickhouseTransactionManager")
PlatformTransactionManager transactionManager(EntityManagerFactoryBuilder builder) {
return new JpaTransactionManager(clickhouseEntityManagerFactory(builder).getObject());
}
@Bean(name = "clickHouseJdbcTemplate")
public NamedParameterJdbcTemplate clickHouseJdbcTemplate(
@Qualifier("clickhouseDataSource") DataSource dataSource) {
return new NamedParameterJdbcTemplate(dataSource);
}
}