Позвольте мне также объяснить с точки зрения сборщика мусора.
Существует 3 состояния объекта в спящем (или) объекте Область действия спящего режима -
- Переходное состояние
- постоянное состояние
- отдельное состояние
Лучше разобраться с примером кода -
Давайте рассмотрим класс POJO как объект Student ->
Student student = new Student();
Теперь этот ученический объект находится в переходном состоянии .
Когда мы присоединяем этот объект POJO к сеансу гибернации->
session.save(student);
Теперь этот объект POJO находится в постоянном состоянии .
(Точка зрения сборщика мусора - GC не может уничтожить любой объект, который находится в постоянном состоянии.
Так что мы можем сказать, что постоянное состояние похоже на временное хранилище для объектов POJO )
Если мы выполним ->
session.beginTransaction.commit();
тогда объект POJO находится в состоянии постоянного хранения или базы данных
(Точка зрения сборщика мусора - GC не может уничтожить этот объект, потому что этот объект POJO теперь находится за пределами JVM и хранится в
Таблица форм внутри базы данных. Итак, мы можем сказать, что это состояние хранения базы данных похоже на постоянное хранилище для объектов POJO )
Если мы выполним ->
session.evict(student);
затем объект POJO выселяется или удаляется обратно из постоянного состояния в отключенное состояние. Таким образом, это состояние объекта POJO отключенное состояние .
(точка зрения сборщика мусора - GC может легко стереть отсоединенный объект POJO состояния из JVM)