Hibernate中的三种状态

    瞬时状态:刚创建的对象还没有被Session持久化、缓存中不存在这个对象的数据并且数据库中没有这个对象对应的数据为瞬时状态这个时候是没有OID(对象标识符)。一般通过new关键字创建,它没有持久化,没有处于Session中,处于此状态的对象叫临时状态。 

 持久状态:对象经过Session持久化操作,缓存中存在这个对象的数据为持久状态并且数据库中存在这个对象对应的数据为持久状态这个时候有OID,通过save,saveorupdate等方法保存的对象,或者从数据库查询出来的对象即为临时状态。

游离状态:当Session关闭,缓存中不存在这个对象数据而数据库中有这个对象的数据并且有OID为游离状态,如使用delete等语句执行持久状态之后的对象。

那么如何区分这三种状态呢?

关键在于两点:

是否获得了与数据库现存记录相对应的oid,是否存在于Session缓存中;

两者都不满足即为 瞬时状态,如new的对象;

两者都满足即为持久状态,如从数据库查询的对象,或者执行save等方法之后的对象;

满足而不满足即为 游离状态,如使用delete等语句执行从数据库获取的对象等。

其转化类型如下图示:

而在开发中往往需要注意的是 :对new产生的对象直接使用update等更新方法无效。

如  Person person =new Person();

person.setId(001);

person .setName("张三");

super.save(person);

person .setName("李四");

super.update(person); //无效语句

数据库编号为001的姓名仍然为“张三”。

Hibernate三种数据持久状态:临时态、游离态、持久化状态相关推荐

  1. Hibernate中的三种数据持久状态和缓存机制

    Java三大框架之--Hibernate中的三种数据持久状态和缓存机制 Hibernate中的三种状态   瞬时状态:刚创建的对象还没有被Session持久化.缓存中不存在这个对象的数据并且数据库中没 ...

  2. Hibernate三种状态(Transient、Persistent、Detached)各种保存(save,persist,update,saveOrUpdte,merge,flush,lock)区别

    转载地址:http://www.2cto.com/kf/201212/178604.html 一.三种状态(Transient.Persistent.Detached) 在Hibernate中有三种状 ...

  3. Excel应该这么玩——5、三种数据:Excel也是系统

        Excel最常用的功能就是记录数据,把数据按照行列记录下来.这部分数据是源数据,是业务活动中最原始的流水账,作为后续操作的依据.为了从源数据中得出一定的结论,需要对源数据进行分析得出报表数据. ...

  4. (POST请求中的三种数据请求格式.application/x-www-form-urlencoded和multipart/form-data和application/json)

    (POST请求中的三种数据请求格式.application/x-www-form-urlencoded和multipart/form-data和application/json) applicatio ...

  5. 三种数据交换技术的比较

    三种数据交换技术的比较 http://book.51cto.com  2007-04-23 17:55  王达  电子工业出版社  我要评论(1) 摘要:本章主要介绍局域网.广域网,以及OSI各层主要 ...

  6. 三种数据交换方式的时延计算

    三种数据交换方式的时延计算 part1:什么是时延?有哪三种数据交换方式? 时延指的是计算机网络性能的一种,表示数据从网络的一端传送到另一端所用的时间. 三种数据交换方式:电路交换.报文交换.分组交换 ...

  7. 下列关于三种数据交换方式的叙述,错误的是( )

    下列关于三种数据交换方式的叙述,错误的是( D ) A. 电路交换不提供差错控制功能 B. 分组交换的分组有最大长度的限制 C. 虚电路是面向连接的,它提供的是一种可靠的服务 D. 在出错率很高的传输 ...

  8. 计算机网络--边缘和核心部分,三种数据交换方式

    目录 互联网的构成和特点 互联网的边缘部分和核心部分 边缘部分 端系统之间的通信方式 客户端-服务器(C/S方式) 对等连接方式(P2P) 核心部分 三种数据交换方式 电路交换 报文交换(存储转发) ...

  9. 计算机网络三种数据交换方式

    三种数据交换方式:电路交换.报文交换.分组交换. 电路交换: 典型应用就是打电话,交换机将两个需要通信的电话申请建立连接(申请占用通道资源)->通话(占用通信资源)->通话后释放连接(释放 ...

最新文章

  1. Excel VBA开发中数字签名的管理
  2. 文本编辑器实现光标定位的功能
  3. 网工路由基础(5)ISIS协议
  4. Fiori launchpad里tile的个数是如何从后台取回来的
  5. 安装完最小化 RHEL/CentOS 7 后需要做的 30 件事情(三)码农网
  6. oracle data guard --理论知识回顾02
  7. 可怕的春运,烦人的火车票!
  8. VM : 虚拟机中Linux磁盘的挂载与卸载
  9. 设计模式(6)六大原则之开闭原则
  10. 【历史上的今天】2 月 1 日:网景浏览器停止支持;id Software 成立;Intel 80286 芯片问世
  11. 软件测试开发高频面试题及参考答案(适用校招)
  12. 百度杯”CTF比赛(十二月场)
  13. python_使用marshal模块序列化
  14. 阿里云API网关调用示例
  15. 这些有意思的女产品经理...你一定要知道
  16. 我所理解的技术领导力
  17. Knockout select 例子
  18. [Java] [OpenGL ES3.2] 正多边形
  19. hadoop高可用三台
  20. 鱼c论坛 python课后题pdf_[全套55讲]鱼C论坛小甲鱼Python的课后题.pdf

热门文章

  1. 用32板实现ps2无线遥控的实时控制
  2. 极客时间:《一个草根创业者的40岁人生复盘》阅读笔记
  3. Java中通过正则表达式判断是否为合法的url地址
  4. python日历图_Python绘制日历图和热力图
  5. 基于注意力的卷积神经网络高光谱波段选择
  6. 1516_AURIX TC275总线设计以及SRI总线
  7. 易优cms响应式少儿舞蹈培训机构网站模板源码 自适应手机端
  8. 计算机组成原理指令系统例题,计算机组成原理,指令系统,练习题
  9. Java Iterator 详解
  10. numpy高级教程之np.where和np.piecewise