1. 临时状态 
由 new命令开辟内存空间的java对象,例如:
User user=new User();
临 时对象在内存孤立存在,它是携带信息的载体,不和数据库的数据有任何关联关系.
 
2. 持久状态 
处于该状态的对象在数据库中具有对应的记录,并拥有一个持久化标识.通过session的get()、load() 等方法获得的对象都是持久对象。
持久化对象被修改变更后,不会马上同步到数据库,直到数据库事务提交。在同步之前,持久化 对象是脏的(Dirty)。
(a) 如果是用hibernate的delete()方法,对应的持久对象就变成临时对象,因数据库中 的对应数据已被删除,该对象不再与数据库的记录关联.
(b) 当一个session执行close()或 clear()、evict()之后,持久对象变成游离对象,此时该对象虽然具有数据库识别值,但它已不在HIbernate持久层的管理之下.
持久对象具有如下特点:
(1)和session实例关联;
(2)在数据库中有与之关联的记录,并 拥有持久化标识.
3. 游离状态
当与某持久对象关联的session被关闭后,该持久对象转变为游离对象.当游离对象被重新关联到session上 时,又再次转变成持久对象(在Detached其间的改动将被持久化到数据库中)。 游离对象拥有数据库的识别值,但已不在持久化管理范围之内。
 
(a) 通 过update()、saveOrUpdate()等方法,游离对象可转变成持久对象.
(b) 如果是用hibernate的delete()方法,对应的游离对象就变成临时对象,因数据库中的 对应数据已被删除,该对象不再与数据库的记录关联.
(c) 在没有任何变量引用它时,它将被gc在适当的 时候回收;
游离对象具有如下特点:
(1)本质上与瞬时对象相同,在没有任何变量引用它时,JVM会在适当的时候将它回收;
(2)比瞬时对象多了一个数据库记录标识值.

转载于:https://www.cnblogs.com/zfxJava/p/5660939.html

hibernate 的三种状态 如何转化的。相关推荐

  1. 举例理解Hibernate的三种状态:瞬时态、持久态、托管(即游离态)态及互相转化

    举例理解Hibernate的三种状态 初学Hibernate,了解到Hibernate有三种状态:transient(瞬时状态),persistent(持久化状态)以及detached(游离状态). ...

  2. 深入hibernate的三种状态

    转载自:http://www.cnblogs.com/xiaoluo501395377/p/3380270.html 学过hibernate的人都可能都知道hibernate有三种状态,transie ...

  3. (详细)Hibernate查询技术(Query、Session、Criteria),Hibernate的三种状态,Hibernate集合struts2实现登录功能(二)

    一.Hibernate的三种查询方式(掌握) Hibernate中提供了三种查询方式: 1)Session的查询:按主键查询查询,方法为get或load 2)Query的查询:使用HQL语句或SQL语 ...

  4. HIbernate的三种状态

    1.瞬时状态(Transient) 通过new创建对象后,对象并没有立刻持久化,他并未对数据库中的数据有任何的关联,此时java对象的状态为瞬时状态,Session对于瞬时状态的java对象是一无所知 ...

  5. 初始Hibernate-关于hibernate的三种状态

    2019独角兽企业重金招聘Python工程师标准>>> 瞬时状态: 实体对象是通过java中的new关键字开辟内存空间的java对象,但是它并没有纳入hibernate Sessio ...

  6. 【SSH】——Hibernate三种状态之间的转化

    Hibernate的三种状态为:transient.persistent和detached.对这三种状态的理解可以结合Session缓存,在Session缓存中的状态为persistent,另外两种不 ...

  7. SSH框架之-hibernate 三种状态的转换

    一.遇到的神奇的事情 使用jpa操作数据库,当我使用findAll()方法查处一个List的对象后,给对这个list的实体进行了一些操作,并没有调用update 或者 saveOrUpdate方法,更 ...

  8. hibernate 三种状态的转换

    一.遇到的神奇的事情 使用jpa操作数据库,当我使用findAll()方法查处一个List的对象后,给对这个list的实体进行了一些操作,并没有调用update 或者 saveOrUpdate方法,更 ...

  9. Hibernate 对象的三种状态

    Hibernate 对象的三种状态 瞬时(transient): 由new操作符创建,且尚未与Hibernate Session关联的对象被认定为瞬时(Transient)的.瞬时(Transient ...

最新文章

  1. Linux_KVM虚拟机
  2. 《剑指offer》c++版本 11. 旋转数组的最小数字
  3. java new java.text.SimpleDateFormat(yyyyMM01).format(date)
  4. centos7 go yum 安装_超详细的centos7下载安装Postgresql11(yum安装)教程
  5. 豆瓣评分9分+,每一部看完不禁感慨!这里是神州大地!
  6. html高度的属性的值,html – 行高属性是否可以继承父Div的高度属性或其所属Div的访问高度属性?...
  7. 微信版花呗“分付”要来了!花呗,白条你们怎么看?
  8. redis 的mq功能演示
  9. 聊聊微服务架构及分布式事务解决方案!
  10. QT + VTK (QVTKWidget)显示点云,内存泄漏的解决方法
  11. 《灵飞经5·龙生九子》 第二十二章 河咸海淡(上)
  12. 多余元素删除(多种代码)
  13. 神经网络编程的34个案例,人工神经网络编程内容
  14. 9. DICOM图像显示-DCMTK-窗宽窗位调整和源码分析
  15. JSOI2008 小店购物
  16. PHP加载lod,面向大场景模型web端动态渲染LOD处理方法与流程
  17. 读书总结-《数学之美》
  18. 【Web技术】1374- 纯 JS 实现灵活的前端主题切换功能
  19. 小鸡手柄和劲玩X3蓝牙手柄对比
  20. 500个爆文标题_爆文标题要怎么写,100个超强吸引人的标题盘点

热门文章

  1. 大道至简 第二章 读后随笔
  2. spark sql建表的异常
  3. [置顶] MyEclipse显示中文界面,在线安装教程
  4. 反编译Silverlight项目
  5. 【零基础学Java】—TCP通信(五十四)
  6. diybox路由器设置教程_家庭无线路由器怎么设置 家庭无线路由器设置教程【详细方法】...
  7. SpringBoot常用注解以及作用
  8. 线程安全的三大不安全案例以及解决方法
  9. 浙江财经大学是一所怎样的学校?
  10. 2021年,彩票店还开的下去吗?