Ответ 1
Не работает ли определение нескольких источников данных и в зависимости от вашего запроса изменится на правильную схему?
spring.datasource.url = jdbc:oracle:thin:@//maui:1521/xe
spring.datasource.username = schema1
spring.datasource.password = ...
spring.datasource2.url = jdbc:oracle:thin:@//maui:1521/xe
spring.datasource2.username = schema2
spring.datasource2.password = ..
@Bean
@Primary
@ConfigurationProperties(prefix="spring.datasource")
public DataSource schema1() {
return DataSourceBuilder.create().build();
}
@Bean
@ConfigurationProperties(prefix="spring.datasource2")
public DataSource schema2() {
return DataSourceBuilder.create().build();
}
В противном случае вам нужно убить и воссоздать соединение, чтобы использовать один источник данных, но это будет очень медленным для вашего приложения после повторного подключения снова и снова. Было бы лучше, если бы вы использовали некоторую базу данных NoSQL для достижения такого динамического хранения данных.