无法捕获乐观锁异常。
引发 OptimisticLockException 的一种方法是使用 em.flush()
try{
//some enitity
em.flush()
}
catch(OptimisticLockException ole){}
但我不认为这是最好的解决方案,因为在这个完整的数据库中是刷新的。
另一种解决方法是捕捉EJBException
并找到RollBackException
那个..
try{
// some code
}
catch (EJBException ex) {
if (ex.getCausedByException().getCause().toString().
indexOf("javax.transaction.RollbackException")!= -1){
// do work
}
}
}
请帮助您有任何其他想法或告诉我哪种方式更好。