Всем привет.
Вопрос по работе с БД и многопоточностью, а также блокировкам.
Приложение использует spring boot, описаны все необходимые сущности в базе данных.
Есть ли где-нибудь ссылка/ресурс каким образом наложить блокировку в БД на данные?
Суть задачи:
Приходит внешний идентификатор из сторонней системы, приложение должно проверить наличие этого идентификатора в базе данных и при его отсутствии завести его.
Если все происходит в один поток, то в целом все вроде бы ок. Но если подключаем несколько потоков, то в момент выполнения запроса на поиск и получения его результата другой поток также может не найти в БД и будет создан дубль. Да, мы можем повесить индекс в БД и исключить возможность записи дублей, но хочется корректно обрабатывать это на уровне приложения, а не валится в exception при вставке данных в БД.
Я думаю вопрос сам по себе простой, просто я как-то неправильно его гуглю. Может кто подсказать, что почитать по этому поводу?