Hibernate持久对象的生命周期

瞬时态(transient)的特征
- 在数据库中没有与之匹配的数据
- 没有纳入session的管理
两种来源:
- 新建的POJO(简单JAVA对象)。
- 持久态bean删除操作后,数据库中没有对应数据,不在session管理范围,但bean还是存在的。
持久态(persistent)的特征
- persistent状态的对象在数据库中有与之匹配的数据
- 纳入了session的管理
- 在清理缓存(脏数据检查)的时候,会和数据库同步。即在commit()前所有对bean的修改都会在commit()时用update语句更新到数据库。
两种来源:
- 瞬时态的bean通过session保存到数据库。
- 通过session直接获取的实体bean。
游离态(detached)的特征
- 在数据库中有与之匹配的数据
- 没有纳入session的管理
来源:
清除缓存或关闭session会造成持久态bean没有sessin管理,变成游离态。Session对游离态的bean进行更新操作可以使之再纳入session管理范围,成为持久bean。