Я использую реализацию Eclipse Link, но, возможно, это относится и к Hibernate.В какой-то момент я позвонил:
em.lock(entity, LockModeType.OPTIMISTIC_FORCE_INCREMENT);
, который я считал атомарной операцией.
Удивительно - после установки точки останова на поле @Version
кажется, что существует много вызовов entity._persistence_get
и entity._persistence_set
.
По-видимому - можно добраться до одной и той же точки с помощью отладчика, используя два браузера, и переключаться между потоками, пока они еще выполняют эти скрытые функции.Когда это сделано - оба потока не могут быть сброшены / зафиксированы позже.
Есть ли какое-либо изменение, которое может произойти, если не в Release Mode, или это только из-за отладчика?С уважением, Даниэль