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

Может ли объект в Hibernate из состояния persistent перейти в transient

Нет, объект в Hibernate не может напрямую перейти из persistent в transient состояние. Persistent объект привязан к сессии и отслеживается Hibernate. Чтобы сделать его transient, нужно:

  1. Закрыть сессию (session.close()) — объект станет detached.
  2. Явно вызвать session.evict(object) — удалит его из кэша сессии.
  3. После этого объект можно считать transient, так как он больше не управляется Hibernate.

Пример:

java
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
User user = session.get(User.class, 1L); // persistent
session.evict(user); // теперь detached
tx.commit();
session.close(); // объект становится transient
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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