5. Hibernate的对象状态是什么?并做详细说明


hibernate面试题 --- Hibernate的对象状态是什么?并做详细说明
 
Hibernate的对象状态是什么?并做详细说明
   Hibernate的对象状态其实就是session中持久化类的实例的对象状态,了解了持久化类的状态,才可以正确的运用session中的方法。
   Hibernate的对象状态为瞬时状态、持久状态、脱管状态
(1)瞬时状态
       该实例是刚用new语句创建的,还没有被持久化,不处于任何session的缓存中,它没有对象标识符值。如果没有变量对该对象进行引用,它将被java虚拟机回收。

特点:不跟任何一个Session实例关联,在数据库中没有任何对应的记录
(2)持久状态
   已经被持久化,加入到session缓存中,实例目前与某一个session有关联,它拥有对象标识符值,并且可能在数据库中有一个对应的行,Hibernate保证在同一个session实例的

缓存中,数据库中的每一条记录只对应唯一的持久化对象
特点:持久化对象总是被一个session实例关联,持久化实例和数据库的相关记录对应,session清理缓存时,会根据持久化实例的属性数据变化,同步更新数据库,总结一句话就

是:和session实例关联,在数据库中有对应的记录
(3)脱管状态
   已经被持久化过,但已经不处于session缓存中,实例曾经与某一个session上下文发生过关联,不过与某持久对象关联的session被关闭了,它拥有对象表示符值,并且在数据库

中可能存在一个对应的行
   特点:
1.不再位于session缓存中,即它不再和session关联
2.本质上与瞬时对象相同,在没有任何变量引用它时,JVM会在适当的时候将它回收;

3.比瞬时对象多了一个数据库记录标识值

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值