首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Hibernate实业3种状态Transient/Persistent/Detached

2012-11-20 
Hibernate实体3种状态Transient/Persistent/Detached实体对象的生命周期有三种状态:??????1.Transient(自

Hibernate实体3种状态Transient/Persistent/Detached

实体对象的生命周期有三种状态:
??????1.Transient(自由状态)
??????此时的实体对象和数据库中的记录无关联,只是一个普通的JavaBean。
??????2.Persistent(持久状态)
??????此时的实体对象和数据库中的记录有关联,其变更将由Hibernate固化到数据库中。该实体对象处于由Hibernate框架所管理的状态。
??????3.Detached(游离状态)
??????处于Persistent状态的对象,其对应的Session实例关闭之后,那么,此对象就处于"Detached"状态。Detached状态和Transient状态的区别在于Detached状态的对象可以再次与某个Session实例相关联而成为Persistent对象。

??????从实体对象是否被纳入Hibernate实体管理容器的角度,Transient和Detached状态的实体对象可以统称为VO(Value Object),而被管理的实体对象称为PO(Persistent Object)。两者的区别:
??????1.VO是相对独立的实体对象,处于非管理状态。
??????2.PO是Hibernate纳入其实体管理容器(Entity Map)的对象,它代表了与数据库中某条记录对应的Hibernate实体,PO的变化在事务提交时将反映到实际数据库中。
??????3.如果一个PO与其对应的Session实例分离,那么此时,它又会变成一个VO。

??????下图是我画的实体对象生命周期的状态转换图:

Hibernate实业3种状态Transient/Persistent/Detached

热点排行