У меня есть 3 типа пользователей, то есть A, B и C. Я читаю столбец DB, чтобы извлечь последний идентификатор пользователя, увеличивая его на единицу и создавая новый идентификатор пользователя из хранилища.
Request lastCreatedIdUserWise = requestRepository.findTopByUserIdOrderByCreateDateDesc(user.getUserId());
Long requestSubscriptionId = 1L;
if (lastCreatedRequestForSubscription != null) {
// plus one the last created request id for subscription.
requestSubscriptionId += lastCreatedRequestForSubscription.getShipRequestIdBySubscription();
}
request.setRequestIdBySubscription(shipRequestSubscriptionId);//this saves a new request with new Id
Мне нужно поставить блокировку для каждого пользователя при поступлении новых запросов.
Когда есть несколько запросов для пользователя A, необходимо заблокировать этот процесс (получение максимального идентификатора и сохранение нового идентификатора)
Когда есть запросы для разных пользователей (то есть A или B или C), тогда пусть этот поток продолжается (блокировка не требуется).