Spring Mongo: как организовать парралельное изменение сущности?
Всем привет! В java новичок.
Юзаю Spring + Spring Mongo. Есть сущность. От клиентов приходят запросы на ее изменнение. Может придти несколько запросов одновременно. Сейчас при запросе я выбираю сущьность из БД, изменяю, сохраняю. Но, понятно, что при одновременных запросах я могу перетереть часть изменений.
Как этого избежать? Как решаются такие проблемы?
Заранее спасибо!
Самый простой способ - используйте syncronized. А вообще монга внутри себя использует блокировку на документ при операциях изменения, так что заморачиваться не стоит.
Если проблема не проявляется, либо проявляется редко, и стоимость такой проблемы невелика, то её решать нет никакого смысла. В противном случае можно как минимум попробовать использовать оптимистические блокировки, а в идеале - задуматься о применении Event Sourcing.