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

Что такое Dirty Checking в Hibernate

Dirty Checking — это механизм Hibernate, который автоматически определяет изменения в сущностях и синхронизирует их с БД при коммите транзакции. Hibernate сравнивает текущее состояние сущности с её первоначальным состоянием (снимком, сделанным при загрузке).

Пример:

java
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
User user = session.get(User.class, 1L); // делается снимок состояния
user.setName("New Name"); // изменяем поле
tx.commit(); // Hibernate обнаружит изменение и выполнит UPDATE
session.close();

Нюансы:

  • Работает только в рамках сессии
  • Требует активной транзакции
  • Эффективнее, чем явные вызовы update()
  • Может быть отключен через аннотацию @DynamicUpdate
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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