1.对象的3种状态
在Hibernate中,可以把实体对象看成有3种状态,分别是临时态、持久态、游离态。
2.临时态
转换
通过new创建的对象为临时态
通过delete方法操作的对象将转变为临时态
特征
临时态的对象可以被垃圾回收
临时态的对象未进行过持久化,未与session关联
3.持久态
转换
通过get、load、list、iterate方法查询到的对象为持久态
通过save、update方法操作的对象转变为持久态
特征
持久态对象垃圾回收器不能回收
持久态的对象进行了持久化,与session相关联。实际上持久态对象存在于session缓存中,由session负责管理。
持久态对象的数据可以自动更新到数据库中,时机是在调用session.flush(),而提交事务时会调用session.flush(),因此提交事务时也会触发同步,可以理解为ts.commit=session.flush()+commit
4.游离态
转换
通过session的evict、clear、close方法操作的对象会转变为游离态
特征
游离态的对象可以被垃圾回收
游离态的对象进行过持久化,但已与Session解除了关联
时间: 2024-11-13 02:06:48