Java 这个代码有什么问题?(多数据源Oracle)
目前,我必须在Spring Boot项目中连接两个Oracle数据源。我认为我的配置做得很好,因为Spring验证了我的连接,但当我调用一个服务时,它总是响应我“空”。我想是因为交易经理没有改变 这是我的项目结构:Java 这个代码有什么问题?(多数据源Oracle),java,spring,oracle,spring-boot,spring-data-jpa,Java,Spring,Oracle,Spring Boot,Spring Data Jpa,目前,我必须在Spring Boot项目中连接两个Oracle数据源。我认为我的配置做得很好,因为Spring验证了我的连接,但当我调用一个服务时,它总是响应我“空”。我想是因为交易经理没有改变 这是我的项目结构: - project ⊢---- config ⊢---- controllers ∟---- models ⊢---- dao | ⊢---- db1 | ∟---- db2 ⊢---- entity | ⊢---- db1
- project
⊢---- config
⊢---- controllers
∟---- models
⊢---- dao
| ⊢---- db1
| ∟---- db2
⊢---- entity
| ⊢---- db1
| ∟---- db2
⊢---- services
⊢---- db1
∟---- db2
这是我的实体类:
包project.models.entity.db1;
////进口
@实体(name=“User”)
@表(name=“T_USER”)
公共类用户实现可序列化{
私有静态最终长serialVersionUID=1L;
@身份证
私人长id;
私有字符串名称;
私家姓;
私有字符串用户名;
私有字符串密码;
//////构造
//////接球手和接球手
//////HASCODE、EQUALS和TOSTRING
}
package project.models.entity.db2;
////进口
@实体(名称=“股东”)
@表(name=“股东”)
公共类实现了可序列化{
私有静态最终长serialVersionUID=1L;
@身份证
私有整数id;
私有整数;
//////构造
//////接球手和接球手
//////HASCODE、EQUALS和TOSTRING
}
这是我的存储库类:
package project.models.dao.db1;
////进口
@PersistenceContext(name=“db1”)
@存储库
公共接口IUserDao扩展了JpaRepository{
}
package project.models.dao.db2;
////进口
@PersistenceContext(name=“db2”)
@存储库
公共接口IShareholderDao扩展了JpaRepository{
}
这是我的服务课程:
package project.models.services.db1.impl;
////进口
@服务
公共类UserServiceImpl实现IUserService{
@自动连线
私有IUserDao userDao;
@凌驾
@事务性(“transactionManager”)
公共列表findAll(){
返回userDao.findAll();
}
@凌驾
@事务性(“transactionManager”)
公共用户findById(长id){
返回userDao.findById(id).orElse(null);
}
package project.models.services.db2.impl;
////进口
@服务
公共类ShareholderServiceImpl实现了ISShareHolderService{
@自动连线
私人IShareholderDao股东dao;
@凌驾
@事务性(“db2TransactionManager”)
公共列表findAll(){
返回股东dao.findAll();
}
@凌驾
@事务性(“db2TransactionManager”)
公众股东findById(整数id){
返回shareholderDao.findById(id).orElse(null);
}
}
这是我的配置类:
package project.config;
////进口
@配置
@配置属性(前缀=“oracle1”)
@EnableJParepositions(entityManagerFactoryRef=“entityManagerFactory”,transactionManagerRef=“transactionManager”,basePackages={
“project.models.dao.db1”})
@启用事务管理
@验证
公共类Db1Config{
@NotNull
私有字符串用户名;
@NotNull
私有字符串密码;
@NotNull
私有字符串url;
@Bean(name=“entityManagerFactory”)
public LocalContainerEntityManagerFactoryBean entityManagerFactory()引发SQLException{
LocalContainerEntityManagerFactoryBean em=新的LocalContainerEntityManagerFactoryBean();
em.setDataSource(dataSource());
em.setPackagesToScan(新字符串[]{“project.models.entity.db1”});
HibernateJavaEndorapter vendorAdapter=新的HibernateJavaEndorapter();
em.setjpavendor适配器(供应商适配器);
em.setJpaProperties(hibernateProperties());
em.setPersistenceUnitName(“db1”);
返回em;
}
@Bean(name=“dataSource”)
DataSource DataSource()引发SQLException{
OracleDataSource dataSource=新的OracleDataSource();
setUser(用户名);
dataSource.setPassword(密码);
setURL(url);
dataSource.setImplicitCachingEnabled(true);
dataSource.setFastConnectionFailoverEnabled(true);
返回数据源;
}
@初级的
@Bean(name=“transactionManager”)
公共平台transactionManager transactionManager()引发SQLException{
返回新的JpaTransactionManager(entityManagerFactory().getObject());
}
私有属性hibernateProperties(){
属性=新属性();
properties.put(“hibernate.dialogue”、“org.hibernate.dialogue.oracle10gdialogue”);
properties.put(“hibernate.show_sql”,“true”);
properties.put(“hibernate.hbm2ddl.auto”、“validate”);
归还财产;
}
}
package project.config;
////进口
@配置
@配置属性(前缀=“oracle2”)
@EnableJParepositions(entityManagerFactoryRef=“db2EntityManagerFactory”,transactionManagerRef=“db2TransactionManager”,basePackages={
“project.models.dao.db2”})
@启用事务管理
@验证
公共类Db2Config{
@NotNull
私有字符串用户名;
@NotNull
私有字符串密码;
@NotNull
私有字符串url;
@Bean(name=“db2EntityManagerFactory”)
public LocalContainerEntityManagerFactoryBean db2EntityManagerFactory()引发SQLException{
LocalContainerEntityManagerFactoryBean em=新的LocalContainerEntityManagerFactoryBean();
em.setDataSource(db2DataSource());
em.setPackagesToScan(新字符串[]{“project.models.entity.db2”});
HibernateJavaEndorapter vendorAdapter=新的HibernateJavaEndorapter();
em.setjpavendor适配器(供应商适配器);
em.setJpaProperties(hibernateProperties());
em.setPersistenceUnitName(“db2”);
返回em;
}
@Bean(name=“db2DataSource”)
DataSource db2DataSource()引发SQLException{
OracleDataSource dataSource=新的OracleDataSource();
setUser(用户名);
dataSource.s
[User [id=39, name=Jack, surname=Sparrow, ...], [...], ...]
[]
em.setPackagesToScan(new String[] { "project.models.entity.db1" });
em.setPackagesToScan(new String[] { "project.models.dao.db2" });