I try to set multiple datasource, but just always only can get primary datasource. source Primary:
@Configuration
@EnableJdbcRepositories("com.xxx.repository.abc")
public class AbcDataSourceConfig {
@Bean
@Primary
@ConfigurationProperties(prefix="spring.abc")
public DataSourceProperties abcDataSourceProperties() {
return new DataSourceProperties();
}
@Bean
@Primary
public DataSource abcDataSource(@Qualifier("abcDataSourceProperties") DataSourcePropertiesproperties) {
log.debug("abc properties : {}", properties.getDriverClassName());
return properties.initializeDataSourceBuilder().build();
}
@Bean
@Primary
public NamedParameterJdbcOperations abcJdbcOperations(@Qualifier("abcDataSource") DataSource abcDs) {
return new NamedParameterJdbcTemplate(abcDs);
}
}
source 2:
@Configuration
@EnableJdbcRepositories(jdbcOperationsRef = "cbaJdbcOperations", basePackages = "com.xxx.repository.cba")
public class CbaDataSourceConfig {
@Bean
@ConfigurationProperties(prefix="spring.cba")
public DataSourceProperties cbaDataSourceProperties() {
return new DataSourceProperties();
}
@Bean
public DataSource cbaDataSource(@Qualifier("cbaDataSourceProperties") DataSourceProperties properties) {
return properties.initializeDataSourceBuilder().build();
}
@Bean
public NamedParameterJdbcOperations cbaJdbcOperations(@Qualifier("cbaDataSource") DataSource cbaDs) {
return new NamedParameterJdbcTemplate(cbaDs);
}
}
when I try to select cba's data, it show is error: "Caused by: java.sql.SQLSyntaxErrorException: Table 'abc.cba_data' doesn't exist".
but cba_data is in the cba datasource.
how to setting is correct?