hibernate中的java对象有几种状态,其相互关系如何(区别和相互转换)

原创 2016年06月01日 16:20:16

在Hibernate中,对象有三种状态:临时状态、持久状态和游离状态。

下面分别来说说这些状态:

临时状态:当new一个实体对象后,这个对象处于临时状态,即这个对象只是一个保存临时数据的内存区域,如果没有变量引用这个对象,则会被jre垃圾回收机制回收。这个对象所保存的数据域数据库没有任何关系,除非通过Session的save或者saveOrUpdate把临时对象于数据库关联,并把数据插入或者更新到数据库,这个对 象才转换为持久对象。

持久状态:持久化对象的实例在数据库中有对应的记录,并拥有一个持久化表示ID。对持久化对象进行 delete操作后,数据库中对应的记录被删除,那么持久化对象与数据库记录不再存在对应关系,持久化对象变成临时状态。持久化对象被修改变更后,不会马上同步到数据库,直到数据库事务提交。在同步之前,持久化对象是脏数据。

游离状态:当Session进行了close,clear或者evict后,持久化对象拥有持久化标示符与数据库对应记录一致的值,但是因为回话已经消失,对象不在持久化管理之内,所以处理游离状态(托管状态)游离状态的对象与临时状态对象是十分相似的,只是它还含有持久化标识。

找了一些资料,我想这个图可以清楚的说明这三种状态:

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

java的三种状态--多态,封装性,继承性的相互关系和作用

1.java区分大小写。 2.类名和源程序的名字必须相同–原因:java语言的设定。 在Java中,一个源程序文件被称为一个编译单元(compilation unit)。它是一个包含一 个...
  • jonnyha
  • jonnyha
  • 2017年03月29日 13:37
  • 114

Java String类对象引用、字符串常量和String Pool 相互关系的学习

Java中的数据类型及其存放的

03 Spring IoC之对象间的相互关系和 Spring 应用结构

转载请注明来源 赖赖的博客导语 你知道的越多,越容易接受新的知识。 Spring IoC是有应用场景的,其特定决定了应用的结构;也就是说,一旦你用了Spring,也就受到了框架的限制,只能使用一些...

contentSize、contentInset和contentOffset区别及相互关系

1、contentSize:The size of the content view. 这个size表示滚动视图可以滚动的大小,假如小于或等于滚动视图的frame.size,这时候滚动视图是不可以滚动...
  • zyzxrj
  • zyzxrj
  • 2017年06月30日 18:17
  • 261

Android各个层次之间的相互关系

  • 2015年03月14日 15:47
  • 1.91MB
  • 下载

质量管理工具之间的相互关系

  • 2015年01月05日 12:43
  • 17KB
  • 下载

.obj,.lib,.dll,.h之间的相互关系

http://topic.csdn.net/t/20000912/22/29670.html .obj,.lib,.dll,.h之间的相互关系。 楼主Sunlet(大赢家)2000-0...

UML符号解释及相互关系

文章出处:http://www.cnblogs.com/duanxz/archive/2012/06/13/2547801.html UML中描述对象和类之间相互关系的方式包括:依赖(Depen...

二、OSM相关软件及其相互关系总结

一、语言 Python:特别适用于网络应用,包括网站、后台服务等。 Node.js:是一个服务器端JavaScript 解释器。 二、前端 Leaflet:一个开源JavaScript库,Leafle...
  • kafuak
  • kafuak
  • 2017年01月04日 00:10
  • 277

关于Makefile,Makefile.in,Makefile.am,Configure功能及相互关系的问题

最近在研究开源的东西,发现有很多makefile.am,makefile.in,makefile文件,它们之间究竟是什么关系呢?能可以用什么工具生成吗?      无论对于一个初学者还是一个资深的...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:hibernate中的java对象有几种状态,其相互关系如何(区别和相互转换)
举报原因:
原因补充:

(最多只允许输入30个字)