一:对象的状态
瞬时:数据库没有数据与之对应,超过作用域会被jvm垃圾回收器回收,一般是new出来与session没有关联的对象
持久:数据库中有对应的数据与只对应,当前与session有关联,并且相关联的session没有关闭,事务没有提交,持久对象状态发生改变,在事务提交时会影响到数据库
脱管(游离):数据库中有数据与之对应,但是没有session与之关联托管对象发生改变时hibernate不能检测到,数据库有这个记录,所以当更新时update才能用的上,而set只能用在持久对象中因为这是hibernate能检测,不用调用update方法,所以update只能在托管中用,但是往往很多时候不知道session是不是关闭了,或数据库有没有这条记录,所以savaOrUpdate可以解决,当没有查到id时就会调用save方法,否则就调用update方法<id name=”id” unsaved-value=”-1”>当查到数据库为-1的时候就调用save方法
二:三种状态的相互转化
瞬时通过new----save saveOrUpdate----> 持久persistent —delete——>transient瞬时对象
Persistent持久——close evict clear——>Detached托管——update saveOrUpdate lock——>持久
数据库的对象—get load find iterate etc———>持久对象
瞬时对象和托管对象通过garbage被垃圾回收机制回收
分享到:
相关推荐
Hibernate三种状态
Hibernate 三种状态
该文档详细描述了Hibernate的三种状态,适合对Hibernate学习!
hibernate对象三种状态,有详细的代码介绍三种状态,易理解,有具体代码实现,有详细备注,让你轻松理解三种状态的存在形式
本文主要介绍了hibernate三种状态的转换。具有很好的参考价值。下面跟着小编一起来看下吧
这是一个讲解了关于hibernate三种状态之间的转换,如果想知道他们之间的相关总结和理解,这是一个不错的选择
NULL 博文链接:https://unddone8373229.iteye.com/blog/1104797
本文主要介绍了Hibernate三种状态和Session常用的方法,具有很好的参考价值,下面跟着小编一起来看下吧
一个关于关于Hibernate对象的状态的描述。
hibernate对象三状态及OneToOne&OneToMany&ManyToMany讲解,代码示例,数据库示例!非常全面
hibernate中session对象的状态详解
Hibernate 实体状态 瞬态(transient) 持久化(persistent) 脱管(detached) 转换
整理的一些大公司hibernate方面的经典面试题,涵盖了hibernte的基本原理,重要接口,缓存机制,hibernate三种状态的转换原理等等
hibernate的各种保存方式的区别以及hibernate对象的三种状态[定义].pdf
05_传智播客hibernate教程_实体对象的三种状态与saveOrUpdate方法
Hibernate中po对象的三种状态分析[借鉴].pdf
hibernate三状态的描述,希望对大家有一定的帮助
本人在厦门邦初培训时候 使用的快速入门精简文档 ...对象的临时状态、持久状态和游离状态 用session的update()方法使游离对象转变为持久化对象。 延迟装载 迫切左外链接 HQL检索方式 QBC检索方式 本地SQL检索方式
hibernate相关配置 对象映射关系 3种状态格式
Hibernate对象状态以及各种保存方法的区别