Встречается на собеседованиях • сегодня

Что такое Pessimistic Locking в Spring

Pessimistic Locking (пессимистичная блокировка) — это механизм, при котором предполагается, что конфликты при доступе к данным вероятны, и запись блокируется на уровне БД до завершения транзакции. В Spring реализуется через @Lock или EntityManager.

Пример с JPA:

java
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
    @Lock(LockModeType.PESSIMISTIC_WRITE)
    @Query("SELECT u FROM User u WHERE u.id = :id")
    User findByIdForUpdate(@Param("id") Long id);
}

Особенности:

  1. Блокировка происходит на уровне БД (SELECT FOR UPDATE в SQL).
  2. Гарантирует, что другие транзакции не смогут изменить/прочитать данные.
  3. Может привести к deadlock'ам при неправильном использовании.
  4. Подходит для высококонкурентных операций с критичными данными.

Используется, когда важно предотвратить одновременное изменение данных, например, в финансовых операциях.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы