使用启用了JPA兼容事务访问的JTA时,事务不可访问

时间:2019-10-19 14:37:49

标签: java hibernate jpa transactions entitymanager

我向事务管理器注入了@PersistenceContext上下文注释。每次尝试以em.getTransaction().begin开始交易时,都会出现错误消息异常

Transaction is not accessible when using JTA with JPA-compliant transaction access enabled

我知道我应该注入UserTransaction或使用@Transactional注释,但我想知道这种行为的原因。

1 个答案:

答案 0 :(得分:1)

我认为您应该注入容器管理的交易。

类似的东西:

@Resource
private UserTransaction transaction;

public method() {
  try {
     transaction.begin();
     ...do some persistence...
     transaction.commit();
  } catch (Exception e) {
     transaciton.rollback();
  }
}

OR

如果不需要此类控件,则可以在方法上使用@Transaction注释。

希望有帮助。