У меня есть файл application.properties, например:
spring.datasource.first.jdbcUrl=jdbc:mysql://localhost:3306/world?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
spring.datasource.first.url=jdbc:mysql://localhost:3306/world?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
spring.datasource.first.username=root
spring.datasource.first.password=root
spring.datasource.two.jdbcUrl=jdbc:mysql://localhost:3306/sakila?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
spring.datasource.two.url=jdbc:mysql://localhost:3306/sakila?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
spring.datasource.two.username=root
spring.datasource.two.password=root
И у меня есть следующий класс конфигурации:
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import javax.sql.DataSource;
@Configuration
public class MultipleDataSourceConfiguration {
@Bean
@Primary
@ConfigurationProperties(prefix="spring.datasource.first")
public DataSource primaryDataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "secondaryDS")
@ConfigurationProperties(prefix="spring.datasource.two")
public DataSource secondaryDataSource() {
return DataSourceBuilder.create().build();
}
}
Но когда я пытаюсь подключиться к базам данных, он работает только с первой. Во втором соединении это показывает мне следующую ошибку:
java.sql.SQLSyntaxErrorException: Table 'world.actor' doesn't exist
Выполняет поиск в первой базе данных вместо использования второго соединения для этого объекта. Как я могу решить это?