我正在尝试通过一个 slsb 访问两个数据库,特别是 slsb 中的一种方法。然而这不可能吗?除了更改存储过程之外我还能做些什么吗?
@PersistenceContext(unitName = "DB1")
private EntityManager oneEntityManager;
@PersistenceContext(unitName = "DB2")
private EntityManager twoEntityManager;
...
StringBuilder queryString1 = new StringBuilder("exec myProc1 ");
Query queryOne = oneEntityManager.createNativeQuery(queryString.toString());
List<?> resultListOne = query.getResultList();
StringBuilder queryString2 = new StringBuilder("exec myProc2 ");
Query queryTwo = twoEntityManager.createNativeQuery(queryString2.toString());
List<?> resultListTwo = queryTwo.getResultList();
...
原因:org.hibernate.exception.GenericJDBCException:无法打开连接
最佳答案
I am am tryign to access two dbs via one slsb, specifically one method within an slsb. However this is not possible?
这绝对是可能的,但提供更多详细信息确实会有所帮助:
- 您正在访问不同的数据库吗?
- 您能展示一下您的持久性单元的配置吗?
- 您能否告诉我们您如何配置数据源(XA?)
- 您能展示一下您是如何注释 SLSB 方法的吗?
causes : org.hibernate.exception.GenericJDBCException: Cannot open connection
这表明您的持久性单元之一存在配置问题,但无法透露更多信息。
关于java - 使用 ejb、java 持久性实体管理器的两个数据库连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3180108/