У меня есть приложение, которое выполняет:
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?Повторить попытку или сообщить пользователю сообщение по умолчанию, например «сервер занят»?