首页 > 代码库 > Hibernate 三种状态理解及转换

Hibernate 三种状态理解及转换

        首先先说下hibernate中的三个状态,只有完全理解了这三个状态,才能在项目中充分利用hibernate这个工具来完成项目进度。

1、瞬时态,也叫临时态等,不受hibernate session管制的状态,即某个实例跟session没有任何关联,比如new产生的实例。

2、持久态,session中持久化了的实例,相当于数据库中的记录,修改实例的任何属性都会导致数据库记录的变更。

3、托管态,也叫游离态等,持久化对象脱离了Session的对象。如Session缓存被清空的对象。特点:已经持久化,但不在Session缓存中。处于此状态的对象叫游离对象。


        下边用张图表示三个状态之间的转换关系:


顺便补充下持久态跟托管态的区别:

持久态:修改实例属性会引起数据库对应记录的变更

托管态:修改实例属性不会引起数据库对应记录的变更