Предотвратить блокировку чтения для 2 разных потоков весной - PullRequest
0 голосов
/ 06 марта 2019

У меня есть 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), тогда пусть этот поток продолжается (блокировка не требуется).

...