随笔-57  评论-202  文章-17  trackbacks-0
      最近正在研读《深入浅出Hibernate》一书,前面写的随笔有些也是读该书的笔记,只是未做归类,从这篇开始,我将把相关的内容都整理成一个系列的读书笔记。
      今天这篇是有关实体对象的生命周期。我刚开始接触Hibernate的时候,只是简单的把它当做一个API工具,直到后来看到有关VO和PO的内容时,才意识到Hibernate不仅仅是一个O/R Mapping的API工具,它还是一个容器。它可以帮你管理实体对象的生命周期。

      实体对象的生命周期有三种状态:
      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。

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

vopolife.JPG
posted on 2005-06-16 18:31 小米 阅读(3063) 评论(9)  编辑  收藏 所属分类: Hibernate

评论:
# re: 《深入浅出Hibernate》读书笔记(1)——实体对象生命周期 2005-07-28 12:57 | weidagang2046
写得不错,支持!  回复  更多评论
  
# re: 《深入浅出Hibernate》读书笔记(1)——实体对象生命周期 2005-07-28 20:40 | 小米
多谢捧场。:)  回复  更多评论
  
# re: 《深入浅出Hibernate》读书笔记(1)——实体对象生命周期 2005-08-14 11:04 | dengdahong
我顶  回复  更多评论
  
# re: 《深入浅出Hibernate》读书笔记(1)——实体对象生命周期 2006-01-21 21:22 | shuimudaoliang
刚学它,好像有点收获。谢谢  回复  更多评论
  
# re: 《深入浅出Hibernate》读书笔记(1)——实体对象生命周期 2007-02-23 20:49 | swiminsky
好  回复  更多评论
  
# re: 《深入浅出Hibernate》读书笔记(1)——实体对象生命周期 2007-04-22 10:53 | nyl
不错!!学习下,多谢!!  回复  更多评论
  
# re: 《深入浅出Hibernate》读书笔记(1)——实体对象生命周期[未登录] 2008-07-16 22:43 | 小马
非常感谢,正在学习  回复  更多评论
  
# re: 《深入浅出Hibernate》读书笔记(1)——实体对象生命周期[未登录] 2008-08-01 22:20 | moonandsun
哈哈,不错哦  回复  更多评论
  
# re: 《深入浅出Hibernate》读书笔记(1)——实体对象生命周期 2009-02-05 17:10 | LeeHome
学习下!  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: