BMT中的optimisticlockexception处理

时间:2014-02-07 19:14:41

标签: jpa transactions optimistic-locking

我正在使用Bean-managed-transaction并在发生OpstimisticLockException时遇到问题。 捕获异常时(由于OpstimisticLockException),代码将执行utx.rollback(),并且我得到异常,说该事务不存在。

没有得到官方文档的任何确切答案,如果我们在OptimisticLock的情况下在BMT中手动回滚事务,想想doc在CMT中说,如果OptimisticLock发生,则事务将被标记为回滚。

但是,我明确调用utx.rollback()会给我异常抱怨该事务不存在。所以我怀疑通过调用commit(),甚至发生了OptimisticLockException,事务终止,没有什么可以回滚。

任何人都知道这个东西是如何工作的?感谢

Flow就像这样:

em = emf.crateEntityManager();
try {
utx.begin();
em.joinTranaction();

...do something

em.merge(obj);
utx.commit;
}catch (Exception e) {
utx.rollback();
}

0 个答案:

没有答案