【问题标题】:How to roll back JTA transaction correctly?如何正确回滚 JTA 事务?
【发布时间】:2013-01-19 02:52:42
【问题描述】:

回滚容器管理的 JTA 事务的事务正确方法是什么?

我明白这一点:EJBException when calling entityManager.getTransaction() 我无法获取事务实例。 我读了一个解决方案here,但我不确定这是否正确。

我也知道,如果我抛出异常,事务将被回滚。

但我的问题是:如果我想(必须)使用一个由EntityManager 管理的容器,那么在其中回滚事务的正确方法是什么?

【问题讨论】:

    标签: java jakarta-ee jpa jta


    【解决方案1】:

    Code Ranch 上的答案是对的,你必须使用SessionContext

    @Resource
    private SessionContext ctx;
    
    //and then in method
    if(fail) {
        ctx.setRollBackOnly(); 
    }
    

    另请参阅article

    【讨论】:

      猜你喜欢
      • 2016-12-27
      • 2012-04-13
      • 2013-06-21
      • 2011-12-10
      • 1970-01-01
      • 1970-01-01
      • 2018-06-17
      • 2011-10-18
      • 1970-01-01
      相关资源
      最近更新 更多