временная шкала выглядит так:
Пользователь (браузер) ---------------------------> обновить TARGET 2 ------------ ----->
Тема ------> обновить TARGET 1 ---------> long_operation -----> обновить TARGET 3
Я запускаю поток для выполнения long_operation и обновляю объект TARGET до и после операции.
Проблема в том, что во время long_operation пользователь может обновить TARGET в пользовательском интерфейсе. Поэтому, когда я пытаюсь обновить TARGET после long_operation, я получаю исключение оптимистической блокировки.
Я использую номер версии для оптимистической блокировки, а обновление 2 находится в транзакции.
Я попытался выполнить обновление 1 и 3 в другой транзакции -> не работает.
Я также пытался обновить номер версии, прежде чем делать update_3 -> не работает.
Не уверен, что здесь делать правильно ...