Приношу свои извинения за путаницу. Классы OrderService, CompanyService и есть классы работы с базой.
@Transactional(rollbackFor = {ServiceException.class, NullPointerException.class, PSQLException.class})
@Service(value = "orderService")
public class OrderService {
// code
}
Данные о балансе компании хранятся в базе. Чтобы получить актуальный баланс — нужно вытащить ее из базы. Проблема в том, что я не понимал, как сделать «захват мьютекса» этого объекта, ведь если вытащить компанию из базы еще раз, то это уже будет другой объект. gvsmirnov предлагает завести поле
ConcurrentMap<Long, Lock> companyLocks
, где для каждого id компании будет храниться отельный Lock. И насколько я понимаю — вы предлагаете то же самое.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
Данные о балансе компании хранятся в базе. Чтобы получить актуальный баланс — нужно вытащить ее из базы. Проблема в том, что я не понимал, как сделать «захват мьютекса» этого объекта, ведь если вытащить компанию из базы еще раз, то это уже будет другой объект. gvsmirnov предлагает завести поле , где для каждого id компании будет храниться отельный Lock. И насколько я понимаю — вы предлагаете то же самое.