Hibernate中java对象的三种状态

Hibernate框架基础——Hibernate入门

Hibernate中java对象的三种状态

java对象的三种状态

当前应用通过调用Hibernate API与框架发生交互时,需要从持久化的角度关注应用对象的生命周期持久化生命周期是Hibernate中的一个挂按键的概念,正确地理解生命周期可以更好的了解Hibernate的实现原理 掌握Hibernate的正确用法,Hibernate框架通过Session来管理java对象的状态,在持久化生命周期中java对象存在以下三种状态

1.瞬时状态(Transient)

通过new创建对象后,对象并没有立即持久化 他并未与数据库发生任何关系,此时java对象的状态为瞬时状态,Session对于瞬时状态的对象一无所知,当对象不在被其他对象引用时他的数据也就丢失了,对象将按照垃圾回收机制处理

2.持久状态(Persistent)

当对象与Session关联 被Session管理时 他就处于持久状态,处于持久状态的对象拥有数据标识(数据库中的主键值)那么对象是什么时候与session对象关联的呢

有两种方式:第一种通过Session的查询接口或者是get()方法或者是load方法()从数据库中加载对象的时候,加载状态的对象,通过调用session的save方法或者saveOrUpdate方法时java对象也与session发生关联,对于处于持久状态的对象,session会跟踪和管理他们,如果对象的内部状态发生了任何变化,hibernate会选择合适的实际(如事务提交时)将变更固化到数据库中。

3.游离状态(Detached)处于持久化的对象 脱离与其关联的Session管理后对象就处于游离状态,处于游离状态的对象Hibernate无法感知到对象的任何操作Session提供了两个方法(Update() merge())将处于游离状态的对象与一个新的session发生关联,这是对象的状态就从游离转持久化。

 

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值