Вы можете реализовать оптимистические блокировки в своей таблице БД следующим образом (вот как в Hibernate делается оптимистическая блокировка):
- Добавьте в таблицу целочисленный столбец «версия».
- Увеличивать значение этого столбца при каждом обновлении соответствующей строки.
- Чтобы получить блокировку, просто прочитайте значение строки "version".
- Добавить условие "версия = полученная_версия" к предложению где
Ваше обновление заявления. Проверьте количество затронутых строк после обновления.
Если ни одна строка не была затронута - кто-то уже изменил вашу запись.
Ваше обновление должно выглядеть как
UPDATE mytable SET name = 'Andy', version = 3 WHERE id = 1 and version = 2
Конечно, этот механизм работает только в том случае, если за ним следуют все стороны, в отличие от предоставляемых СУБД блокировок, которые не требуют специальной обработки.
Надеюсь, это поможет.