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

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

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

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

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

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

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

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

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

Hibernate中Java对象的三种状态以及之间的转换 ----Hibernate_4

Hibernate中Java对象的三种状态和相互转换,
  • MXiaoChao
  • MXiaoChao
  • 2016年06月06日 22:22
  • 1429

hibernate中对象的状态有三种

一,首先hibernate中对象的状态有三种:瞬态、游离态和持久态,三种状态转化的方法都是通过session来调用,瞬态到持久态的方法有save()、saveOrUpdate()、get()、load...
  • tantexian
  • tantexian
  • 2016年01月18日 22:51
  • 938

在Hibernate 应用中的Java对象的状态

临时状态(transient): 刚刚用new语句创建,还没有被持久化,不处于Session的缓存中。处于临时状态的Java对象 被称为临时对象。 持久化状态(persistent) : 已经被持...
  • u013803262
  • u013803262
  • 2015年03月28日 19:02
  • 559

Hibernate学习总结之对象的4种状态

http://blog.csdn.net/cpp1781089410
  • cpp1781089410
  • cpp1781089410
  • 2015年11月23日 20:57
  • 1052

Hibernate中对象的三种状态,以及三种状态间的转化方法

在Hibernate中有三种状态,对它的深入理解,才能更好的理解hibernate的运行机理,刚开始不太注意这些概念,后来被别人问到了,说是面试题,才发现它是重要的。对于需要持久化的JAVA对象,在它...
  • fangleijiang
  • fangleijiang
  • 2014年09月12日 10:55
  • 1756

Hibernate中Session对象创建的几种方式

在Tomcat启动的时,利用Filter进行Session的创建及关闭1、创建一个Filter文件:HibernateFilter.javapublic class HibernateFilter i...
  • zzhzcl15
  • zzhzcl15
  • 2010年07月02日 01:43
  • 1680

游离状态的对象和瞬时状态的对象有什么区别?

游离状态的对象和瞬时状态的对象有什么区别? 答案一:      Hibernate的对象有3种状态,分别为:瞬时态(Transient)、 持久态(Persistent)、脱管态(Deta...
  • guojunjian
  • guojunjian
  • 2012年08月01日 17:46
  • 2254

Hibernate的四种状态

纸上得来终觉浅 开始学习Hibernate对象的四种状态,花了一上午的时间来思考: 1.为什么要对Hibernate的对象分为几种状态: 状态是对对象所处所处情境的描述,在对hibernate定义了几...
  • Jintao_Ma
  • Jintao_Ma
  • 2016年04月20日 15:56
  • 4772

初识Hibernate的几种方式

1,实体类与数据库表映射关系    1>可以采用注解的方式;    2>可以使用配置文件配置映射关系; 2,配置文件    1>hibenate.properties;    2>hiber...
  • an_2016
  • an_2016
  • 2016年06月19日 17:27
  • 1188

精通Hibernate——Hibernate中Java对象的状态详解

Hibernate中对于要持久化的Java对象在他的生命周期中需要经历以下几种状态: 1、临时状态(transient):刚刚用new语句创建,还没有被持久化,不处于session的缓存中。处于临时...
  • fuyuwei2015
  • fuyuwei2015
  • 2015年08月13日 19:15
  • 1056
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:hibernate中的java对象有几种状态,其相互关系如何(区别和相互转换)
举报原因:
原因补充:

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