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区别在于在内存中存在(官方无此状态仅用于图示理解)