java - 使用 ejb、java 持久性实体管理器的两个数据库连接

标签 java jpa ejb-3.0 entitymanager

我正在尝试通过一个 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/

相关文章:

java - 运行 EJB 示例项目时出现错误 500 : java. lang.NullPointerException

Java 等待线程完成

Java Web 身份验证和授权

sql - Postgresql, hibernate "is not distinct"

jpa - 在 JSF View 中显示 BLOB 类型

jakarta-ee - 来自不同客户端的 EJB3 有状态并发调用

java - EJB3 业务代表

java - WSDL 策略对外部文件的引用

java - 为什么不推荐使用 hibernate 的 ClassMetadata.getIdentifier(Object, EntityMode)

java - 简单的jpa问题