Назад к вопросам
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();