楽観的ロック例外をキャッチできません。
OptimisticLockException を発生させる 1 つの方法は、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
}
}
}
他に考えがあるか、どちらの方法が良いか教えてください。