我有一个带有@PersistenceContext
上下文注释的事务管理器。每次尝试使用em.getTransaction().begin
启动事务时,都会出现错误消息异常
Transaction is not accessible when using JTA with JPA-compliant transaction access enabled
[我知道我应该注入UserTransaction
或使用@Transactional
批注,但我想知道这种行为的原因。
我认为您应该注入容器管理的事务。
类似:
@Resource
private UserTransaction transaction;
public method() {
try {
transaction.begin();
...do some persistence...
transaction.commit();
} catch (Exception e) {
transaciton.rollback();
}
}
OR
如果不需要此类控件,则可以在方法上使用@Transaction注释。
希望有帮助。