I have a spring-boot java application with several databases so I put this in to manage it, but I didn't understand how to tell the entity that it bases to use.
So,i use Extending the Defaults ,with declare multiple beans with different mappings within Spring's application context.
spring.datasource.mariadb.url=jdbc:mariadb://localhost:3306/
spring.datasource.mariadb.username = root
spring.datasource.mariadb.password = XXX
spring.datasource.sqlsever.url=jdbc:sqlserver://localhost;databaseName=XXX
spring.datasource.sqlsever.username = admin
spring.datasource.sqlsever.password = XXX
public class DatasourceConfiguration {
@Bean
@ConfigurationProperties("spring.datasource.mariadb")
public DataSourceProperties mariadbDataSourceProperties() {
return new DataSourceProperties();
}
@Bean
@ConfigurationProperties("spring.datasource.sqlsever")
public DataSourceProperties sqlseverDataSourceProperties() {
return new DataSourceProperties();
}
@Bean
public DataSource mariadbDataSource() {
return mariadbDataSourceProperties()
.initializeDataSourceBuilder()
.build();
}
@Bean
public DataSource sqlseverDataSource() {
return sqlseverDataSourceProperties()
.initializeDataSourceBuilder()
.build();
}
}
@Slf4j
@EnableJpaAuditing
@SpringBootApplication(
exclude = {
BatchAutoConfiguration.class,
JmxAutoConfiguration.class,
})
public class xApplication {
public static void main(String[] args) {
System.setProperty(AbstractEnvironment.ACTIVE_PROFILES_PROPERTY_NAME, "multipledatasources");
SpringApplication.run(xApplication.class, args);
}
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(xApplication.class);
}
}
But for now it only uses one database
If try JPA method i have this
Parameter 0 of constructor in [second dao]required a bean of type '[second dao]' that could not be found.