1. 瞬时状态:对象由new操作符创建,但没有和session关联,也就是我们刚刚创建的对象,还没有保存到数据库中去
  2. 持久化状态:对象被保存到数据库中去了,并且还与session有关联
  3. 托管状态:对象已经被保存中去了,但与session没有关联了
    下面用代码解释一下:
@Testpublic void test() {Customer c = new Customer();//瞬时状态c.setCustName("Tom");Session s = HibernateUtils.openSession();Transaction t = s.beginTransaction();t.begin();s.save(c);//持久化状态t.commit();s.close();//session关闭,此时c为托管状态//托管状态向持久化状态转化Session s1 = HibernateUtils.openSession();Transaction t1 = s.beginTransaction();t1.begin();s1.update(c);//持久化状态t.commit();s.close();//session关闭,此时c为托管状态}

刚刚创建的c就是瞬时状态,刚刚创建,没有和session关联
执行下面这段代码,c就是持久化状态了:

s.save(c);//持久化状态

此时c被保存到数据库中去了,并且还与session有关联
当执行下面代码时,c就是托管状态了:

s.close();//session关闭,此时c为托管状态

此时c已经被保存中去了,但与session没有关联了
下面这段代码是演示如何从托管状态到持久化状态的

//托管状态向持久化状态转化Session s1 = HibernateUtils.openSession();Transaction t1 = s.beginTransaction();t1.begin();s1.update(c);//持久化状态t.commit();s.close();//session关闭,此时c为托管状态

简单说,就是让C再次与session建立关系就行了

Hibernate持久化对象的状态:瞬时状态、持久化状态、托管状态相关推荐

  1. (转) Hibernate框架基础——操纵持久化对象的方法(Session中)

    http://blog.csdn.net/yerenyuan_pku/article/details/52761021 上一篇文章中我们学习了Hibernate中java对象的状态以及对象的状态之间如 ...

  2. Hibernate 中对象 set 属性时自动保存入库的问题

    背景 在某个项目中,通过 Heibernate 查出某个对象后,对属性进行了 set 操作,并没有进行 update 操作,但是在数据中自动保存了. 显然这并不是我想要的,我只是想 set 一下属性, ...

  3. Hibernate学习5—Hibernate操作对象

    第一节:Hibernate 中四种对象状态 删除状态:处于删除状态的Java 对象被称为删除对象.比如说session delete一个对象,这个对象就不处于session缓存中了, 已经从sessi ...

  4. Hibernate持久化对象状态

    在Hibernate中,持久化对象再被操作过程中分为三个时期.这三个时期和session周期相关. 各自是瞬时(Transient),持久太(persistent)和游离态(Detached) 瞬时状 ...

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

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

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

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

  7. Hibernate持久化对象的三种状态深入理解

    关于OID hibernate缓存是一个map,他会根据OID作为缓存对象的key,我们的映射文件中<id>标签指定的属性值会作为OID 持久化对象的三种状态 为了方便理解,Hiberna ...

  8. Hibernate→HQL、query.list()返回数据类型、查询相关语句、分页、原生SQL、@注解、持久化对象状态及生命周期、一多关系、继承映射关系、逆向工程

    HQL Query实例与表 session通用工具类 Query对象 from 类→List<类>接收 映射类 仅查询商品 查询商品及所在商家 别名 返回数据类型定义 Iterator接收 ...

  9. hibernate三种状态:临时状态、游离状态、持久化状态

    三种状态的判断标准: con1:是否获得了与数据库现存记录相对应的oid con2:是否存在于Session缓存中 三种状态的定义: if(!con1 && !con2){ trans ...

最新文章

  1. 支持向量机(SVM)
  2. geojson地图_ThingJS的三维城市地图搭建逻辑解析
  3. 中移物联网携手“行车卫士” 智慧城市打开新局面
  4. 清华本硕男,月入5W征婚引群嘲“普通却自信”!本人回应了……
  5. python画图中grid等于true_Python中的matplotlib画图总结
  6. kindeditor简单使用
  7. [js高手之路] html5 canvas系列教程 - 掌握画直线图形的常用API
  8. 清华镜像站 python_使用清华、豆瓣镜像源下载tensorflow
  9. c++ 状态模式(state)
  10. 博文视点大讲堂第30期——职场新人胜出的关键点
  11. 【毕业设计】基于Android的家校互动平台开发(内含完整代码和所有文档)——爱吖校推(你关注的,我们才推)...
  12. Android常用的几种对话框
  13. map集合和set集合
  14. HTML Canvas 刮刮卡抽奖效果的实现
  15. 计算机原理---网络基础知识
  16. Web登录小案例(含验证码登录)
  17. Spring Boot 五种热部署方式
  18. 耐克app显示无法连接服务器,nike app登录不了怎么办 nikeapp客服在哪里怎么联系...
  19. 2023需要重点关注的四大AI方向
  20. MTK平台 配置GNSS的不同模式

热门文章

  1. 一篇文章为你深度解析HTTPS 协议
  2. 《React源码解析》系列完结!
  3. Flexible 弹性盒子模型之flex
  4. 【JS】使用变量作为object的key-方法汇总
  5. leetcode 970. 强整数(Powerful Integers)
  6. sol - 0x60,61,62
  7. python——函数 11、命名空间
  8. 专2-第二课 Eclipse开发环境搭建
  9. class threading.Thread()说明:
  10. powerdesigner 导出数据库表结构