Spring Boot,Spring Data JPA,带有多个DataSources

我正在尝试使用Spring Boot和Spring Data JPA将每个@Repositories连接到不同的DataSource。我使用以下内容http://xantorohara.blogspot.com/2013/11/spring-boot-jdbc-with-multiple.html作为参考。以下是我试图使用Spring Data JPA实现类似解决方案时使用的代码。


CustomerDbConfig.java(第一个数据源连接)


@Configuration

@EnableJpaRepositories(

        entityManagerFactoryRef = "orderEntityManager",

        transactionManagerRef = "orderTransactionManager",

        basePackages = {"com.mm.repository.customer"})

public class CustomerDbConfig {


    @Bean(name = "customerEntityManager")

    public LocalContainerEntityManagerFactoryBean entityManagerFactory(){

        LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean();

        em.setDataSource(dataSource());

        em.setPackagesToScan(new String[] {"com.mm.domain.customer"});


        JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();

        em.setJpaVendorAdapter(vendorAdapter);

        em.setJpaProperties(additionalJpaProperties());

        em.setPersistenceUnitName("customerPersistence");

        em.setPackagesToScan("com.mm.domain.customer");


        return em;

    }


    Properties additionalJpaProperties(){

        Properties properties = new Properties();

        properties.setProperty("hibernate.hbm2ddl.auto", "create-drop");

        properties.setProperty("hibernate.dialect", "org.hibernate.dialect.H2Dialect");

        properties.setProperty("hibernate.show_sql", "true");


        return properties;

    }


    @Bean

    public DataSource dataSource(){

        return DataSourceBuilder.create()

                .url("jdbc:h2:mem:customer:H2")

                .driverClassName("org.h2.Driver")

                .username("sa")

                .password("")

                .build();

    }   

qq_遁去的一_1
浏览 1277回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP