1 Hibernate中对象有哪几种状态,有什么规则
参考答案
Hibernate中对象可以看做有3种状态,分别是临时态、持久态、游离态,这些状态可以相互转换,转换规则如下图:
图-1
具体各个状态的特征为:
- 临时态的对象可以被垃圾回收
- 临时态的对象未进行过持久化,未与session关联
- 持久态对象垃圾回收器不能回收
- 持久态的对象进行了持久化,与session相关联,即持久态对象存在于session缓存中,由session负责管理。
- 持久态对象的数据可以自动更新到数据库中,时机是在调用session.flush()时执行。而提交事务时会调用session.flush(),因此提交事务时也会触发同步,可以理解为ts.commit=session.flush()+commit
- 游离态的对象可以被垃圾回收
- 游离态的对象进行过持久化,但已与session解除了关联