Hibernate 三种状态,tansient瞬时态、persistent持久态、detached游离态

Hibernate三种状态之一:临时状态 (Transient): 用new创建的对象,它没有持久化,没有处于Session中,处于此状态的对象叫临时对象;

表示该实体对象在内存中是自由存在的,也就是说与数据库中的数据没有任何的关联,该实体从未与任何持久化上下文联系过,没有持久化标识(相当与主键)。

瞬态实体的特征有:
与数据库中的记录没有任何关联,也就是没有与其相关联的数据库记录
与Session没有任何关系,也就是没有通过Session对象的实例对其进行任何持久化的操作。

Hibernate三种状态之二: 持久化状态 (Persistent):已经持久化,加入到了Session缓存中。如通过hibernate语句保存的对象。处于此状态的对象叫持久对象;

指该实体对象 处于Hibernate框架所管理的状态,也就是说这个实体对象是与Session对象的实例相关的。处于持久态的实体对象的最大特征是对其所作的任何变更操作都将被Hibernate持久化到数据库中。

处于持久态的对象具有的特征为:             
每个持久态对象都于一个Session对象关联
处于持久态的对象是于数据库中的记录相关联的
Hibernate会根据持久态对象的属性的变化而改变数据库中的相应记录

Hibernate三种状态之三: 游离状态 (Detached): 持久化对象脱离了Session的对象。如Session缓存被清空的对象。特点:已经持久化,但不在Session缓存中。处于此状态的对象叫游离对象;

处于持久态的实体对象,当他不再与Session对象关联时,这个对象就变成了游离态。

游离态对象的特征有:
游离态对象一定是由持久态对象转换而来
游离态实体不再于Session关联
游离态实体对象与数据库中的数据没有直接联系,主要表现在对其进行的修改不再影响到数据库中的数据
游离态实体对象在数据库中有相应的数据记录(如果该记录没有被删除)

三者间转化

new 对象——>瞬时态
瞬时态— save/saveOrUpdate—>持久态
持久态— session.close/clear/evict—>游离态— session.save/session.saveOrUpdate/session.lock—>持久态
持久态— session.delete—>瞬时态
游离态— session.delete—>瞬时态

参考:
http://developer.51cto.com/art/200907/133235.htm

Hibername三种状态(瞬时态 持久态 游离态)相关推荐

  1. 图解Hibernate中的三种状态(瞬时态,持久态,游离态|托管态)

    注:  1.  瞬时态转化为持久态时,调用save()方法主要是给瞬时态对象赋值id并把该对象保存到session缓存中 2.  持久态转换为游离态主要是把在session缓存中的对象从session ...

  2. Hibernate 对象的三种状态

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

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

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

  4. Hibernate对象的三种状态(瞬时态,持久态,游离态)

    1.  瞬时状态 (瞬态) 当我们通过Java的新的关键字来生成一个实体对象时,这时这个实体对象就处于自由状态,如下:  客户客户=新客户("zx",27,图片); 这时客户对象就 ...

  5. Hibernate三种状态的区分,以及save,update,saveOrUpdate,merge等的使用

    Hibernate的对象有3种状态,分别为:瞬时态(Transient). 持久态(Persistent).脱管态(Detached).处于持久态的对象也称为PO(Persistence Object ...

  6. Hibernate持久化对象三种状态

    持久化类类三种状态介绍 瞬时态:也叫做临时态或自由态,它一般指我们new出来的对象,它不存在OID,与hibernate session无关联,在数据库中也无记录.它使用完成后,会被jvm直接回收掉, ...

  7. Hibernate三种状态;query查询;ResultTransformer转换为pojo对象;可以将query语句写在xml中;Criteria查询;ProjectionList总和/f分组等函数

    Session操作过程中的pojo对象存在三种状态: 1)  瞬时态:该对象在数据库中没有对应的数据 2)  持久态:数据库中存在该对象对应的数据,同时操作该对象的Session也存在. 3)  游离 ...

  8. hibernate中的PO持久化对象及PO三种状态

    一,认识持久化对象PO: 在hibernate的应用程序中,每一个数据库中的表都对应一个持久化对象PO.PO可以看成是与数据库表相映射的java对象.最简单的PO对应数据库中某个表中的一条记录,多个记 ...

  9. 菜鸟学SSH(八)——Hibernate对象的三种状态

    前面写了几篇关于SSH的博客,但不是Struts就是Spring,Hibernate还从来没写过呢.说好是SSH的,怎么可以光写那两个,而不写Hibernate呢对吧.今天就先说说Hibernate对 ...

最新文章

  1. 【JLOI2011】飞行路线
  2. 使用lld自动发现监控多实例redis
  3. VSFTPD 服务器 3秒钟搭建
  4. Android中打包含有Activity以及资源文件的jar包在工程中调用
  5. Java后台通过jxl生成Excel表格
  6. mfc chartctrl 饼状图编写_鸡蛋饼
  7. Android项目clean之后R.java文件丢失解决办法
  8. add_subplot()--matplotlib
  9. 在演示文稿中控制视频播放效果
  10. ROS语音识别科大讯飞语音SDK
  11. Topaz Sharpen A I人工智能清晰锐化PS插件
  12. List集合转字符串,逗号隔开
  13. 即将发布的 Apache Spark 3.2 将内置 Pandas API
  14. Conflux TokenGazer AMA活动内容回顾
  15. 今天分享给你几个绘制Excel表格的技巧
  16. 【bzoj2360】【cstc2011】【幸福路径】【倍增+floyd】
  17. 基于物理和深度学习的角色动画软件:Cascadeur
  18. 第二讲 Java语言概述
  19. webview 上打开QQ客户端,QQ登入后自动打开添加QQ群的方法
  20. 4D毫米波雷达天线设计

热门文章

  1. ADO Command接口,CreateParameter() Size和Value参数的关系
  2. 读书笔记--《伽利略的苦恼》
  3. 【通信名人传奇】迈克尔·法拉第
  4. 导轨服务器ttl信号,TTL电平转0-24V电平 NPN信号转TTL电平 5v24v高速转换器 开关量信号采集模块...
  5. 十万个为什么-基础篇
  6. 银行业务知识之票据(深入浅出版)
  7. 漂亮好看的小姐姐高颜值女神美女可爱的萌妹子,你心动了吗!
  8. 基于MATLAB的语音信号处理系统的设计
  9. Maven项目POM文件错误,提示“Plugin execution not covered by lifecycle configuration”的解决方案
  10. 天鸟技术中台-建设过程-日常经验2:通用参数和数据权限控制