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

В чем разница между состояниями Hibernate

Hibernate управляет объектами в нескольких состояниях:

  1. Transient – объект создан через new, но не ассоциирован с сессией Hibernate. Не имеет представления в БД.
java
User user = new User(); // Transient
  1. Persistent – объект связан с сессией Hibernate (после save(), persist() или загрузки). Изменения отслеживаются и синхронизируются с БД.
java
session.save(user); // Теперь persistent
  1. Detached – объект был persistent, но сессия закрыта (session.close()). Изменения не отслеживаются, но можно повторно прикрепить через merge() или update().

  2. Removed – объект помечен на удаление (delete()), но ещё не удалён из БД. После коммита будет удалён.

Основное отличие – в управлении Hibernate и синхронизации с БД. Persistent объекты автоматически синхронизируются, transient/detached требуют явных действий.

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

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

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

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