Встречается на собеседованиях • сегодня
Что такое Dirty Checking
Dirty Checking — это механизм в Hibernate, который автоматически определяет изменения в сущностях и синхронизирует их с БД при коммите транзакции. Hibernate сравнивает текущее состояние сущности с её первоначальным (закешированным) состоянием после загрузки из БД. Если есть различия — генерируется SQL-запрос на обновление.
Пример:
java
@Entity
public class User {
@Id
private Long id;
private String name;
// getters/setters
}
// В коде:
User user = session.get(User.class, 1L); // SELECT
user.setName("NewName"); // Изменение
// При session.flush() или транзакционном коммите автоматически выполнится UPDATEНюансы:
- Работает только в рамках сессии
- Требует attached-состояния сущности
- Может быть отключен аннотацией @DynamicUpdate
- Эффективнее, чем ручное управление обновлениями, но может создавать лишние запросы

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