null Hibernate @Version, почему нет StaleObjectStateException? - PullRequest
2 голосов
/ 16 января 2012

У нас есть класс сущности, который использует @Version.

@Version
protected Long auditVersion;

Что если два потока пытаются вставить первое вхождение сущности?Оба экземпляра объекта будут иметь auditVersion равным null.Кажется, что Hibernate не обращает никакого внимания на сбой оптимистической блокировки, я не получаю StaleObjectStateException Я ожидал.

Почему бы и нет?

1 Ответ

4 голосов
/ 16 января 2012

Поскольку оптимистическая блокировка используется для обработки одновременных обновлений и удалений. Если два потока пытаются вставить два объекта с одинаковым идентификатором, уникального ограничения первичного ключа достаточно для обнаружения конфликта. Для этого не требуется оптимистическая блокировка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...