Есть ли способ решить проблему, когда вы получаете параллельную вставку и обновление для одного и того же поля в многопоточной среде.Параллельные вставки и обновления postgres
Пример
Тема 1
BEGIN
insert into users (name,age) values('spiderman',27)
COMMIT
резьбы 2
BEGIN
update into users set age = 26 where name='spiderman';
COMMIT
Большая часть обновления времени (транзакция) ничего не знает о вставке происходит, следовательно, оно проливает и ошибок.
То, что я вижу здесь, является классическим примером условий гонки, и одним из способов избежать условий гонки является использование блокировок.
Как применить блокировки (запись) к записи, которой еще нет в БД.
В приведенном выше примере для инструкции insert, чтобы Update знал, что запись еще не находится в БД.
в веб-среде используйте https://en.wikipedia.org/wiki/Optimistic_concurrency_control (см. Аннотацию @Version в JPA) –