代码之家  ›  专栏  ›  技术社区  ›  NimChimpsky

使用EJB、Java持久性实体管理器的两个DB连接

  •  1
  • NimChimpsky  · 技术社区  · 14 年前

    我试图通过一个SLSB访问两个DBS,特别是一个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:无法打开连接

    1 回复  |  直到 14 年前
        1
  •  1
  •   Pascal Thivent    14 年前

    我试图通过一个SLSB访问两个DBS,特别是一个SLSB中的一个方法。然而,这是不可能的?

    这是绝对可能的,但它确实有助于提供更多细节:

    • 您正在访问不同的数据库吗?
    • 您能显示持久性单元的配置吗?
    • 您能告诉我们您的数据源(xa)是如何配置的吗?
    • 你能演示一下如何注释SLSB的方法吗?

    原因:org.hibernate.exception.genericjdbcException:无法打开连接

    这表明您的某个持久性单元存在配置问题,但不可能说得更多。