Ne serait-il pas possible de définir plusieurs sources de données et, en fonction de votre demande, de passer à celle dont le schéma est correct ?
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();
}
Sinon, il faudrait supprimer et recréer la connexion pour continuer à utiliser la même source de données, ce qui serait très lent pour votre application puisqu'il faudrait se reconnecter encore et encore. Il serait préférable pour vous d'utiliser une base de données NoSQL pour réaliser cette sorte de stockage dynamique des données.