Hibernate / JPA middle
Что такое Состояния сущности в Hibernate?
Ответ
Transient (новый объект, Hibernate не знает), Persistent/Managed (связан с сессией), Detached (был persistent, но сессия закрыта), Removed (помечен на удаление).
Разбор: Правильная модель — четыре состояния: Transient (new, Hibernate не знает), Persistent/Managed (привязан к сессии), Detached (был persistent, сессия закрыта), Removed (помечен на удаление). Ловушка в перепутанных определениях и в мифе про Detached: автоматическое отслеживание изменений (dirty checking) действует только для Persistent, отсоединённый объект требует merge() для возврата в контекст. Отбросить состояние Transient нельзя — именно оно описывает только что созданный объект.
Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.