Руководство по выбору стратегии блокировок Когда использовать Pessimistic Locking ✅ Подходит для: Критические финансовые операции: списание денег, обновление баланса Конверсия Lead→Deal: изменение статуса обеих entity, создание связей Резервирование ограниченного ресурса: последний билет, товар со счётчиком Операции с высокой конкуренцией: десятки пользователей одновременно изменяют данные Гарантия отсутствия конфликтов: бизнес не допускает retry логику ❌ НЕ использовать для: Обычных CRUD операций с низкой конкуренцией Длительных операций (пользователь редактирует форму 5 минут) Read-heavy сценариев где запись редка Пример использования: @Transactional public Deal convertLeadToDeal(UUID leadId) { // Блокируем Lead эксклюзивно Lead lead = leadRepository.findByIdForUpdate(leadId).orElseThrow(); lead.setStatus("CONVERTED"); Deal deal = new Deal(lead); leadRepository.save(lead); return dealRepository.save(deal); }