我有一个应用程序:
void deleteObj(id){
MyObj obj = getObjById(id);
if (obj == null) {
throw new CustomException("doesn't exists");
}
em.remove(obj);//em is a javax.persistence.EntityManager
}
我没有使用版本字段显式配置乐观锁定。但是,如果两个请求并行运行,试图删除同一个对象,那么我有时会收到 HibernateOptimisticLockingFailureException,有时会收到“CustomException”。
在没有明确设置乐观锁定的情况下获得 HibernateOptimisticLockingFailureException 是否正常?休眠是否为分离的对象提供默认的乐观锁定?
你在做什么来处理这个 HibernateOptimisticLockingFailureException ?重试或使用“服务器忙”之类的默认消息通知用户?