Сообщение от
Logger
Ну я же написал в самом начале. :-(
Работа с разными строчками идет в одной транзакции, а заказы - в разных обрабатываются с разных рабочих мест, но одновременно
Ну смотрите :
заказ 1
Строка 1 Номенклатура1
Строка 2 Номенклатура2
заказ 2
Строка 1 Номенклатура2
Строка 2 Номенклатура1
С одного рабочего места начинается транзакция, которая перебирает строки заказа1
обновила строку с номенклатурой1 и на соответсвующей InventSum повесила блокировку, так что другая транзакция не сможет получить её forUpdate ( на чтение прочитает, а forUpdate - фиг)