Объект переходит в detached-состояние, когда сессия Hibernate, связанная с ним, закрывается. В этот момент объект больше не управляется никакой активной сессией, но сохраняет свою идентичность и ранее загруженные данные.
Объекты переходят в detached-состояние в следующих сценариях:
session.close()session.clear()session.evict(object)Detached-состояние особенно полезно в многопоточных приложениях с длительными единицами работы, например:
Detached-объекты можно переподключить к другой сессии с помощью таких методов, как:
session.update(object)session.merge(object)session.saveOrUpdate(object)Такая гибкость позволяет тебе работать с объектами за пределами одной сессии, сохраняя при этом консистентность данных и контроль над тем, когда изменения сбрасываются в базу данных.
Когда отсоединённый объект переподключается с помощью session.merge(object), метод возвращает новый управляемый экземпляр, являющийся копией отсоединённого объекта, оставляя исходный отсоединённый объект неизменённым.
Новый — ещё не проверен сообществом
Вы