有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案