Использование JdbcTemplate при нескольких хранилищ данных

Добрый день.

JMIX 1.5

Время от времени использую JdbcTemplateдля выполнения RAW SQL запросов.
image

image

Я добавил дополнительное хранилище, согласно инструкции:
https://docs.jmix.ru/1.x/jmix/1.5/data-model/data-stores.html#additional

Как теперь определять в какое хранилище я хочу обращаться через JdbcTemplate ?

Добрый день!

Можно воспользоваться StoreAwareLocator: Вызов stored procedure через jdbc template

@Autowired
private StoreAwareLocator storeAwareLocator;

public void executeSmth() {
    JdbcTemplate jdbcTemplate = storeAwareLocator.getJdbcTemplate("datastore_name");
}
1 симпатия

Еще можно заранее определить бин JdbcTemplate для доп. хранилища.
Например, если хранилище называется ads1, то в его классе конфигурации определяете бин:

@Configuration
public class Ads1StoreConfiguration {
    // ...

    @Bean
    JdbcTemplate ads1JdbcTemplate(@Qualifier("ads1DataSource") DataSource dataSource) {
        return new JdbcTemplate(dataSource);
    }

И инжектируете его потом куда нужно с квалифаером, в котором указываете имя бина:

@Component
public class SampleBean {

    private final JdbcTemplate jdbc;

    public SampleBean(@Qualifier("ads1JdbcTemplate") JdbcTemplate jdbc) {
        this.jdbc = jdbc;
    }
1 симпатия