Встречается на собеседованиях • сегодня
В чем разница между optimistic и pessimistic lock в Hibernate
Optimistic lock предполагает, что конфликты редки, и проверяет версию объекта при коммите. Если версия изменилась, выбрасывается OptimisticLockException. Реализуется через аннотацию @Version:
java
@Entity
public class Product {
@Id private Long id;
@Version private int version;
// другие поля
}Pessimistic lock блокирует запись на уровне БД сразу при чтении, предотвращая изменения другими транзакциями. Пример:
java
Product product = session.find(Product.class, id,
LockModeType.PESSIMISTIC_WRITE);Ключевые различия:
- Optimistic: проверка при коммите, нет блокировок в БД
- Pessimistic: блокировка сразу при чтении, может вызвать deadlock
- Optimistic лучше для read-heavy, pessimistic - для write-heavy
- Optimistic требует поля версии, pessimistic - нет

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы