隨筆-57  評論-202  文章-17  trackbacks-0
                最近正在研讀《深入淺出Hibernate》一書,前面寫的隨筆有些也是讀該書的筆記,只是未做歸類,從這篇開始,我將把相關(guān)的內(nèi)容都整理成一個系列的讀書筆記。
                今天這篇是有關(guān)實體對象的生命周期。我剛開始接觸Hibernate的時候,只是簡單的把它當(dāng)做一個API工具,直到后來看到有關(guān)VO和PO的內(nèi)容時,才意識到Hibernate不僅僅是一個O/R Mapping的API工具,它還是一個容器。它可以幫你管理實體對象的生命周期。

                實體對象的生命周期有三種狀態(tài):
                1.Transient(自由狀態(tài))
                此時的實體對象和數(shù)據(jù)庫中的記錄無關(guān)聯(lián),只是一個普通的JavaBean。
                2.Persistent(持久狀態(tài))
                此時的實體對象和數(shù)據(jù)庫中的記錄有關(guān)聯(lián),其變更將由Hibernate固化到數(shù)據(jù)庫中。該實體對象處于由Hibernate框架所管理的狀態(tài)。
                3.Detached(游離狀態(tài))
                處于Persistent狀態(tài)的對象,其對應(yīng)的Session實例關(guān)閉之后,那么,此對象就處于"Detached"狀態(tài)。Detached狀態(tài)和Transient狀態(tài)的區(qū)別在于Detached狀態(tài)的對象可以再次與某個Session實例相關(guān)聯(lián)而成為Persistent對象。

                從實體對象是否被納入Hibernate實體管理容器的角度,Transient和Detached狀態(tài)的實體對象可以統(tǒng)稱為VO(Value Object),而被管理的實體對象稱為PO(Persistent Object)。兩者的區(qū)別:
                1.VO是相對獨立的實體對象,處于非管理狀態(tài)。
                2.PO是Hibernate納入其實體管理容器(Entity Map)的對象,它代表了與數(shù)據(jù)庫中某條記錄對應(yīng)的Hibernate實體,PO的變化在事務(wù)提交時將反映到實際數(shù)據(jù)庫中。
                3.如果一個PO與其對應(yīng)的Session實例分離,那么此時,它又會變成一個VO。

                下圖是我畫的實體對象生命周期的狀態(tài)轉(zhuǎn)換圖:

          vopolife.JPG
          posted on 2005-06-16 18:31 小米 閱讀(3088) 評論(9)  編輯  收藏 所屬分類: Hibernate

          評論:
          # re: 《深入淺出Hibernate》讀書筆記(1)——實體對象生命周期 2005-07-28 12:57 | weidagang2046
          寫得不錯,支持!  回復(fù)  更多評論
            
          # re: 《深入淺出Hibernate》讀書筆記(1)——實體對象生命周期 2005-07-28 20:40 | 小米
          多謝捧場。:)  回復(fù)  更多評論
            
          # re: 《深入淺出Hibernate》讀書筆記(1)——實體對象生命周期 2005-08-14 11:04 | dengdahong
          我頂  回復(fù)  更多評論
            
          # re: 《深入淺出Hibernate》讀書筆記(1)——實體對象生命周期 2006-01-21 21:22 | shuimudaoliang
          剛學(xué)它,好像有點收獲。謝謝  回復(fù)  更多評論
            
          # re: 《深入淺出Hibernate》讀書筆記(1)——實體對象生命周期 2007-02-23 20:49 | swiminsky
          # re: 《深入淺出Hibernate》讀書筆記(1)——實體對象生命周期 2007-04-22 10:53 | nyl
          不錯!!學(xué)習(xí)下,多謝!!  回復(fù)  更多評論
            
          # re: 《深入淺出Hibernate》讀書筆記(1)——實體對象生命周期[未登錄] 2008-07-16 22:43 | 小馬
          非常感謝,正在學(xué)習(xí)  回復(fù)  更多評論
            
          # re: 《深入淺出Hibernate》讀書筆記(1)——實體對象生命周期[未登錄] 2008-08-01 22:20 | moonandsun
          哈哈,不錯哦  回復(fù)  更多評論
            
          # re: 《深入淺出Hibernate》讀書筆記(1)——實體對象生命周期 2009-02-05 17:10 | LeeHome
          學(xué)習(xí)下!  回復(fù)  更多評論
            
          主站蜘蛛池模板: 大足县| 岢岚县| 旌德县| 广河县| 青岛市| 息烽县| 雷州市| 巴林左旗| 丹江口市| 陕西省| 苏尼特左旗| 界首市| 瑞安市| 新沂市| 保德县| 安化县| 孟州市| 濉溪县| 视频| 财经| 宁远县| 阿坝| 信丰县| 搜索| 如皋市| 宕昌县| 额济纳旗| 元谋县| 张北县| 潮州市| 新晃| 潢川县| 右玉县| 庆元县| 宁化县| 远安县| 临泉县| 福州市| 象山县| 平遥县| 栾城县|