多数据库连接复用实体映射

问题描述

我们有一个案例,我们连接到不同的数据库环境,但是每个环境中的表都是一样的。

有什么办法可以为每个环境重用实体类吗?

我为每个环境使用单独的配置类。以下是其中一个环境的配置,同样我还有其他 4 个。 “包”推断要连接到哪个环境。

codejava

@Configuration
@EnableJpaRepositories(basePackages = {"packages"},entityManagerFactoryRef = "OneEntityManager",transactionManagerRef = "OneTransactionManager")
public class DevDataSourceConfig {
    @Bean
    @Primary
    public LocalContainerEntityManagerfactorybean OneEntityManager() {
        LocalContainerEntityManagerfactorybean em = new LocalContainerEntityManagerfactorybean();
        em.setDataSource(OneDataSource());
        em.setPackagesToScan(String[]{"packages"});
        HibernateJpavendorAdapter vendorAdapter = new HibernateJpavendorAdapter();
        em.setJpavendorAdapter(vendorAdapter);
        HashMap<String,Object> properties = new HashMap<>();
        properties.put("hibernate.hbm2ddl.auto",env.getProperty("hibernate.hbm2ddl.auto"));
        properties.put("hibernate.dialect",env.getProperty("hibernate.dialect"));
        em.setJpaPropertyMap(properties);
        return em;
    }

    @Primary
    @Bean
    public DataSource OneDataSource() {
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName(driverclass);
        dataSource.setUrl(url);
        dataSource.setUsername(uName);
        dataSource.setPassword(dbPass);
        return dataSource;
    }

    @Primary
    @Bean
    public PlatformTransactionManager OneTransactionManager() {
        JpaTransactionManager transactionManager = new JpaTransactionManager();
        transactionManager.setEntityManagerFactory(OneEntityManager().getobject());
        return transactionManager;
    }
} 

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)