Невозможно отловить исключение оптимистической блокировки.
один из способов вызвать исключение 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
}
}
}
Пожалуйста, помогите, у вас есть еще идеи или скажите, какой путь лучше.