我有一个注入(inject) @PersistenceContext
的事务管理器上下文注释。每次我尝试使用 em.getTransaction().begin
开始交易时我收到错误消息的异常
Transaction is not accessible when using JTA with JPA-compliant transaction access enabled
我知道我应该注入(inject)
UserTransaction
或使用 @Transactional
注释,但我想知道这种行为的原因。
最佳答案
我认为你应该注入(inject)一个容器管理的事务。
就像是:
@Resource
private UserTransaction transaction;
public method() {
try {
transaction.begin();
...do some persistence...
transaction.commit();
} catch (Exception e) {
transaction.rollback();
}
}
或者如果您不需要这样的控制,您可以在您的方法上使用 @Transaction 注释。
希望能帮助到你。
关于java - 使用启用了符合 JPA 的事务访问的 JTA 时无法访问事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58464770/