老师的说法

Hibernate中对象的状态
    在Hibernate使用中,对象的状态有以下三种
    a.临时对象 : 在程序中使用new方式创建的对象
    b.持久对象 : 在程序中与session对象关联,由session负责管理的对象.
                   处于session缓存中的对象都是持久对象
                   对象的持久性:指的是对象的数据状态在事务提交时可以与数据库保持同步更新.
             session.flush();//将持久对象与数据库同步
             tx.commit();//事务提交,提交前默认也调用session.flush()
    c.托管对象 : 在程序中如果session.close()后,session负责管理的持久对象将成为托管对象.
   垃圾回收器负责回收临时和托管状态,持久状态不能回收.

1. 临时对象:数据库中不存在该对象且没有与session关联的对象,是代码new 出来的,此时该对象既无ID也是内存中独立的对象
  2. 持久对象:应该分2种情况:
     a. 数据库中不存在该对象,但已经与session关联,并且对象的id也已经存在了,即事务提交时可以与数据库保持同步
     b. 数据库已经存在的对象,类似被session.load出来,此时的对象也是被session管理的,更新和删除等操作,事务提交后当然可以与数据库同步
  3. 脱管对象:
     也有可能数据库中存在或者不存在,其实脱管就是:由session管理变为session不再管理,而交由JVM去管理(可能被回收)
    可能是:
           a. 数据库中存在了,被load出来update
           b. 临时对象已经与session关联,但事务没提交
              ...
           等情况下,session关闭或清除缓存了。

先自己理解一下,然后结合老师的说法,此刻总算可以较为清晰的理解hibernate的3种对象状态了。

转载于:https://www.cnblogs.com/jianglong-liang/p/3301175.html

我对hibernate的对象的3种状态的理解相关推荐

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

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

  2. hibernate中对象的3种状态----瞬时态、持久态、脱管态

    转载: http://www.blogjava.net/amigoxie/archive/2007/02/11/99342.html Hibernate的对象有3种状态,分别为:瞬时态(Transie ...

  3. hibernate中对象的三种状态瞬时态,持久态,游离态区分

     1.瞬时态. hibernate中什么时候的对象为瞬时态呢,当我们new 一个对象时,还没有save时,它就是瞬时态的,当我们delete一个对象时,它也是瞬时态了,因为此时,他们在数据库中没有对应 ...

  4. hibernate中对象的3种状态(瞬态,持久态,游离态)

    瞬态: 如:Product p=new Product(); //瞬态的对象, new 做查询操作 持久态:save delete p.setPname() 将对象从瞬间变成持久态 做修改的动作 可以 ...

  5. 【Hibernate框架开发之五】Hibernate对象的三种状态Session常用方法

    1. Hibernate对象的三种状态:(图解如下:) 如图所示,Hibernate对象有三种状态,1.Transient  2.Persistent 3.Detached; 三种状态的区别如下: 1 ...

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

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

  7. Hibernate 对象的三种状态

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

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

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

  9. Java中对象的三种状态

    转载自   Java中对象的三种状态 Java中的对象的三种状态是和垃圾回收紧密相关的,因此有必要深究. 状态一:可触及态:从根节点开始,可以搜索到这个对象,也就是可以访问到这个对象,也有人将其称为可 ...

  10. java三态_Java中对象的三种状态

    Java中的对象的三种状态是和垃圾回收紧密相关的,因此有必要深究. 状态一:可触及态:从根节点开始,可以搜索到这个对象,也就是可以访问到这个对象,也有人将其称为可达状态. 状态二:可复活态:从根节点开 ...

最新文章

  1. 排序算法一:选择排序
  2. 一种混合加密方案在软件授权中的应用
  3. angularJs 跨控制器与跨页面传值
  4. matlab scatter cdata,matlab cdatamapping
  5. 深入理解Java虚拟机知乎_深入理解Java虚拟机(类文件结构)
  6. 让你页面速度飞起来 Web前端性能优化
  7. php为图片添加渐变背景,HTML_CSS实例:通过定义渐变边框给图片加阴影,一般我们可以使用背景图的方 - phpStudy...
  8. java memcmp_C 库函数
  9. 1000道Python题库系列分享21(11道编程题:内置函数专项练习)
  10. 开源软件 Cachet 被曝RCE漏洞
  11. windows下phpstorm的常用快捷键及使用技巧
  12. 3des 解密 java_◆JAVA加密解密-3DES
  13. tapestry5的response使用
  14. 编程语言之父6大经典名言,C语言之父这一段代码你见过吗?
  15. 《穿越计算机的迷雾》读书笔记五
  16. 中国遥感卫星详细参数信息
  17. 范德堡大学计算机专业课程,范德堡大学有电子电气工程专业排名
  18. 民营经济挑战未来发展
  19. win7网络上计算机进不去,win7系统电脑红色警戒2点击网络进不去的解决方法
  20. vim/vi中的光标键会变成a,b,c,d的解决办法

热门文章

  1. 位运算 -- 思考
  2. 二叉树的遍历_递归实现
  3. Linux系统编程 --- 系统调用
  4. php curl exec ch,PHP curl_exec函数
  5. Collectors.averagingLong()
  6. Struts2之类型转换中的错误
  7. 矩阵分解的推荐算法入门-好好看
  8. Intel® Math Kernel Library (Intel® MKL)
  9. AtCoder Beginner Contest 137 解题报告(A ~ E)
  10. 解决 IDEA 无法找到 java.util.Date 的问题