hibernate对象的三种状态及转换

一、hibernate对象三种状态

Transient(瞬时状态):没有session管理,同时数据库没有对应记录

  举例:new 出来的对象还没有被session管理,此时该对象处于Transient

Persistent(持久化状态):有session管理,同时在数据库中有记录

  举例:通过get、load等方法获取的数据库中存在的对象,此时处于Persistent

Detached(离线状态):没有session管理,但是在数据库中有记录

  举例:(1) 当通过get或load方法得到的po对象它们都处于Persistent,

      但如果执行delete(po)时(但不能执行事务),

      该po状态就处于Detached(表示和session脱离关联),

     (2)当把session关闭时,session缓存中的Persistent的po对象也变成Detached

Removed(移除状态):没有session管理,同时数据库没有对应记录,约等于Transient

      与Transient区别在于在内存中存在(官方无此状态仅用于图示理解)

原文地址:https://www.cnblogs.com/MIC2016/p/6143838.html