Hibernate学习之----------对象的三种状态

 

在Hibernate中对象的状态变化是比较频繁的,如果单从其状态有三种状:

  1. transient (瞬时态),
  2.                detached (托管态)
  3.                persistant (持久态).

下面来理解三种状态:

1.transient瞬时态:

    该状态下的对象即是在new出一个对象后,没有调用任何其他的hibernate的save,update方法,也没有commit,换句话说就是只在内存中存在,session的缓存中没有,数据库中也没有.

2.persistant (持久态):

   该状态下的对象在内存中存在,在session的缓存中也有,数据库中也存在,很可能发生在场创建对象并用事务提交到数据库中后的状态。

3.detached (托管态)

  该状态下的对象在内存中存在,在session的缓存中没有,而在数据库中以保存存在,因此这种状态多发生在保存一个对象并关闭了session之后,这样session的缓存中就不存在该对象了!

 

Hibernate中持久化对象的生命周期有临时态、持久态和游离态三种。
处于临时态的对象主键值为空,并且未与session关联,数据未保存到数据库中
处于持久态的对象与session关联起来,持久化后对象中的数据被保存到数据库中,并且主键值按照.hbm.xml文件中配置的生成方式生成相应的值
处于游离态的对象脱离了session的管理,是持久化后的一种状态,主键值按照.hbm.xml文件中配置的生成方式生成相应的值
当new一个新的对象时,该对象处于临时态
当该对象被当作session的参数使用的时候,该对象处于持久态
事务提交,session关闭后,该对象处于游离态

 

 

以上仅代表个人观点!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值