Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用ejb、java持久性entitymanager的两个db连接_Java_Jpa_Ejb 3.0_Entitymanager - Fatal编程技术网

使用ejb、java持久性entitymanager的两个db连接

使用ejb、java持久性entitymanager的两个db连接,java,jpa,ejb-3.0,entitymanager,Java,Jpa,Ejb 3.0,Entitymanager,我正在尝试通过一个slsb访问两个dbs,特别是一个slsb中的一种方法。然而,这是不可能的?除了修改存储的进程,我还能做什么吗 @PersistenceContext(unitName = "DB1") private EntityManager oneEntityManager; @PersistenceContext(unitName = "DB2") private EntityManager twoEntityManager; ... StringBuilder que

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

...
@PersistenceContext(unitName=“DB1”)
私有实体管理器oneEntityManager;
@PersistenceContext(unitName=“DB2”)
私有实体管理器twoEntityManager;
...
StringBuilder queryString1=新的StringBuilder(“exec myProc1”);
queryQueryOne=oneEntityManager.createNativeQuery(queryString.toString());
List resultListOne=query.getResultList();
StringBuilder queryString2=新的StringBuilder(“exec myProc2”);
queryquerytwo=twoEntityManager.createNativeQuery(queryString2.toString());
List resultlistwo=queryTwo.getResultList();
...
原因:org.hibernate.exception.genericjdbception:无法打开连接

我正在尝试通过一个slsb访问两个dbs,特别是一个slsb中的一种方法。然而,这是不可能的

这当然是可能的,但提供更多细节确实会有所帮助:

  • 您正在访问不同的数据库吗
  • 您能否显示持久化单元的配置
  • 你能告诉我们你是如何配置你的数据源(XA)的吗
  • 你能说明你是如何注释你的SLSB的方法的吗
原因:org.hibernate.exception.genericjdbception:无法打开连接

这意味着您的一个持久化单元存在配置问题,但不可能再多说了

我正在尝试通过一个slsb访问两个dbs,特别是一个slsb中的一种方法。然而,这是不可能的

这当然是可能的,但提供更多细节确实会有所帮助:

  • 您正在访问不同的数据库吗
  • 您能否显示持久化单元的配置
  • 你能告诉我们你是如何配置你的数据源(XA)的吗
  • 你能说明你是如何注释你的SLSB的方法的吗
原因:org.hibernate.exception.genericjdbception:无法打开连接


这表明您的一个持久化单元存在配置问题,但不可能再多说。

那么“原因”是什么部分说明?java:无状态会话beanjavax.persistence.PersistenceException:org.hibernate.exception.genericjdbception:无法打开连接org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:629)将整个堆栈跟踪粘贴到您的问题中。那么“原因”是什么部分说明?java:无状态会话beanjavax.persistence.PersistenceException:org.hibernate.exception.genericjdbception:无法打开连接org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:629)将整个堆栈跟踪粘贴到您的问题中。