Покопался немного. Могу сузить область вопроса.
Отключил отдельное описание подключения к CH. Вся область настройки сузилась до одного класса.
@Bean
@Primary
@ConfigurationProperties("spring.pg.datasource")
public DataSourceProperties firstDataSourceProperties() {
return new DataSourceProperties();
}
@Bean
@ConfigurationProperties("spring.ch.datasource")
public DataSourceProperties secondDataSourceProperties() {
return new DataSourceProperties();
}
@Bean(name = "PG")
@Primary
@ConfigurationProperties("spring.pg.datasource.configuration")
public DataSource firstDataSource() {
return firstDataSourceProperties().initializeDataSourceBuilder()
.type(BasicDataSource.class).build();
}
@Bean(name = "CH")
@ConfigurationProperties("spring.ch.datasource.configuration")
public DataSource secondDataSource() {
return secondDataSourceProperties().initializeDataSourceBuilder()
.type(BasicDataSource.class).build();
}
Сейчас проблема в том, что если я отключаю метод подключения к одной базе данных, вторая начинает работать.
Если компилирую со всеми включенными методами, то на все запросы идут к Postgress базе данных.
Как мне управлять, в слое данных, из какой базы данных я хочу читать?
Сейчас относительно ClickHouse, DAO выглядит следующим образом
@Qualifier("CH")
private JdbcTemplate ch;
@Autowired
public ClickHouseDAO1(JdbcTemplate dataSource) {
this.ch = dataSource;
}
public List<DataRecord> query(String query) {
List<DataRecord> answer = ch.query(query, DataRecord.Mapper.INSTANCE);
return answer;
}
Но оно не рабоет должным образом.