Hibernate的三种状态

概述

Hibernate有三种状态:transient(瞬时状态),persistent(持久化状态)以及detached(游离状态)。

状态转换图:
这里写图片描述

如上图所示:

  1. 当new出来一个新对象,还没有保存到数据库中的时候,就是transient状态(session中和数据库中都不存在该对象)。
  2. 当瞬时对象被执行save之后(数据库中存在了该对象),就会被session托管,在session中有一个map存放着user对象,也就是说user对象被session引用着,被session纳入管理了。此时的user就处于持久对象了。
  3. 如果对象是持久化对象时,那么对该对象的任何修改,都会在提交事务时才会与之进行比较,如果不同,则发送一条update语句,否则就不会发送语句。
  4. 当持久状态的对象object,在session关闭之后就会变成有游离状态(数据库还存在该对象记录)。对于离线对象,如果要使其变成持久化对象的话,我们不能使用save方法,而应该使用update方法

详解

  1. http://www.cnblogs.com/xiaoluo501395377/p/3380270.html
  2. http://www.cnblogs.com/jyh317/p/3666566.html
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值