问题描述
我们有一个案例,我们连接到不同的数据库环境,但是每个环境中的表都是一样的。
有什么办法可以为每个环境重用实体类吗?
我为每个环境使用单独的配置类。以下是其中一个环境的配置,同样我还有其他 4 个。 “包”推断要连接到哪个环境。
code
java
@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 (将#修改为@)