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

Какой жизненный цикл у сущностей Hibernate

Hibernate сущности проходят 4 состояния жизненного цикла:

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

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

Переходы между состояниями:

  • Transient → Persistent (save())
  • Persistent → Detached (close())
  • Detached → Persistent (update(), merge())
  • Persistent → Removed (delete())
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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