【发布时间】:2016-10-25 01:56:16
【问题描述】:
我正在编写一个在 WebSphere Liberty Profile 8.5.5 中运行的 JEE7 应用程序。我们正在使用 JPA(通过 WLP 中的 Eclipselink 实现)。
我在同一个“persistence.xml”文件中有多个持久性单元。我还需要访问同一个班级中的两个单元。
我在尝试使用第二个 EntityManager 时遇到运行时错误:
@PersistenceContext(unitName = "wwer-list")
private EntityManager entityManagerWwerList;
@PersistenceContext(unitName = "main-dashboard")
private EntityManager entityManagerMainDashboard;
E WTRN0062E: An illegal attempt to use multiple resources that have only one-phase capability has occurred within a global transaction.
如何摆脱这个错误?
另外,我使用的所有表格仅用于阅读。那么如何指定我只想要 JPA 的只读访问权限?
【问题讨论】:
-
我从错误消息中得到了这个。 www-01.ibm.com/support/docview.wss?uid=swg21247192。我的理解是,您需要分布式事务才能跨两个持久单元工作。您可能必须使用 Bitronix 事务管理器之类的东西来实现这一目标
-
你的 persistence.xml 是什么样的?
-
jdbc/wwer-list com.ibm.youribm.services .expensesaggregator.ejb.dao.jpa.entity.WwerEntity jdbc/main-dashboard数据源> com.ibm.youribm.services.expensesaggregator.ejb.dao.jpa.entity.DashboardEntity ... -
抱歉,我一直无法正确格式化 cmets。
标签: java jpa websphere-liberty