您知道当我使用实体管理器时如何获得自动登记到我的事务中的 XAResource 吗?
我使用 Bitronix、JPA、hibernate,我的代码工作正常,但如果一个特定的失败,我不想回滚我的所有 XAResources。我只想将其从当前事务中除名,其他事务将被提交。
但是为了从当前事务中删除它,我需要对象 XaResource 并且我不知道如何使用 JPA/Bitronix 获得它。代码示例:
transactionManager.begin();
try {
(...)
EntityManager em = emf.createEntityManager();
(...)
em.close();
} catch (Exception e) {
// old version - rollback every XaResource in the current transaction
//transactionManager.rollback();
//new version wanted - rollbackonly this XaResource
transactionManager.getTransaction().delistResource(XaResource ...);
throw e;
}
transactionManager.commit();
谢谢你的帮助。