java更改同一会话中的entitymanager数据源
在我的会话中,我需要调用db1和db2上的两个不同过程。当我单独给他们打电话时效果很好,但当我在同一个会话中给他们打电话时却失败了。它正确地获取第一个数据,但在第二次调用时失败,因为它在db1上查找第二个过程,尽管entitiymanager的数据源已正确更改
我错过了什么
下面是代码片段
@Repository
@Transactional
public class DB1Dao {
@PersistenceContext()
private EntityManager entityManager;
@SuppressWarnings("unchecked")
public Model1 getData(String param1) {
.....
}
}
@Repository
@Transactional
public class DB2Dao {
@PersistenceContext()
private EntityManager entityManager;
@SuppressWarnings("unchecked")
public Model2 getData(String param2) {
.....
}
}
@Autowired
private DB1Dao dao1;
@Autowired
private DB2Dao dao2;
@RequestMapping(value = "/inquiry", method = RequestMethod.POST)
public ResponseEntity<Object> inquiryService(@RequestBody InquiryRequest inquiryRequest){
....
Model1 model1 = dao1.getData(param2); // success
....
Model2 model 2 = dao2.getData(param2); // fails since it looks for second procedure on db1
}
共 (0) 个答案