Обычно такие случаи обрабатываются с помощью бизнес-блокировок, которые вы устанавливаете непосредственно на объектах или на родительских объектах.
Добавьте столбец с таким «inedition», который вы установили в true, когда пользователь запрашивает редактирование, и в false, когда пользователь подтвердил / отменил его редактирование.
Помните, что транзакции некоторых пользователей могут быть потеряны до того, как вы разблокируете строку, поэтому вам, вероятно, потребуется:
- либо периодическая обработка, которая разблокирует строки
- функциональный экран, с которого пользователь или администратор может разблокировать оставшиеся заблокированными строки.
Edit:
Такое решение используется всякий раз, когда вы не хотите полагаться на особые функции базы данных, например, Oracle «Выбрать для обновления». В Java EJB-компонент statefull может хранить ссылку на транзакцию из пользовательского интерфейса в базе данных. В зависимости от баз данных могут существовать решения, использующие PHP для Oracle или другие специфические функции базы данных, касающиеся транзакций.