Java Spring-boot Multi Database How set DataBaseProperties on entities?

Viewed 37

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.
0 Answers
Related