使用启用了JPA兼容事务访问的JTA时无法访问事务

问题描述 投票:1回答:1

我有一个带有@PersistenceContext上下文注释的事务管理器。每次尝试使用em.getTransaction().begin启动事务时,都会出现错误消息异常

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

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

java hibernate jpa transactions entitymanager
1个回答
0
投票

我认为您应该注入容器管理的事务。

类似:

@Resource
private UserTransaction transaction;

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

OR

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

希望有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.