回滚容器管理的JTA事务的事务的正确方式是什么?
我明白这一点:EJBException when calling entityManager.getTransaction() 我无法获得事务实例。 我读了一个解决方案here,但我不确定这是否正确。
我也知道,如果我抛出异常,事务将被回滚。
但我的问题是:如果我想(必须)使用托管EntityManager
的容器,那么在其中回滚事务的正确方法是什么?
答案 0 :(得分:7)
Code Ranch上的答案是对的,您必须使用SessionContext
@Resource
private SessionContext ctx;
//and then in method
if(fail) {
ctx.setRollBackOnly();
}
另见article。