Sobes.tech
Назад к вопросам
Junior — Middle
67

Можешь ли ты описать основные состояния, в которых находится Persistence Context в ORM-системах?

Ответ от нейросети

sobes.tech AI

В ORM-системах, таких как Hibernate, Persistence Context (контекст персистентности) управляет жизненным циклом объектов и их состояниями относительно базы данных. Основные состояния объекта в Persistence Context:

  • Transient (временное): объект создан в памяти, но не связан с сессией и не сохранён в базе. Например, new Entity().
  • Persistent (персистентное): объект связан с Persistence Context, отслеживается ORM, изменения будут синхронизированы с базой при коммите или flush.
  • Detached (отсоединённое): объект был ранее persistent, но сессия закрыта или объект отсоединён вручную. Изменения не будут автоматически сохранены.
  • Removed (удалённое): объект помечен на удаление из базы при следующем flush.

Пример на Hibernate:

Session session = sessionFactory.openSession();
Entity entity = new Entity(); // transient
session.save(entity); // теперь persistent
session.evict(entity); // detached
session.delete(entity); // removed
session.close();