hibernate實體對象生命周期Transient/Persistent/Detached

          實體對象的生命周期有三種狀態(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 2009-03-26 00:08 MichaelLee 閱讀(319) 評論(0)  編輯  收藏 所屬分類: Hibernate

          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導(dǎo)航

          統(tǒng)計

          公告

          ====Michael Lee====
          =Java Sofware Engineer=
          =Work @ Beijing=
          ---再煩,也別忘微笑;再急,也要注意語氣;再苦,也別忘堅持;再累,也要愛自己!---
          ---低調(diào)做人,你會一次比一次穩(wěn)健;高調(diào)做事,你會一次比一次優(yōu)秀---
          ---成功的時候不要忘記過去;失敗的時候不要忘記還有未來---

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 铜梁县| 宣武区| 揭东县| 朝阳县| 阜康市| 霍州市| 西林县| 成安县| 马山县| 高州市| 房山区| 永清县| 呼伦贝尔市| 右玉县| 盘山县| 金寨县| 沂南县| 旬邑县| 南木林县| 库伦旗| 安西县| 西乌| 永善县| 广安市| 高青县| 黎城县| 重庆市| 鱼台县| 呼玛县| 岐山县| 如皋市| 巴青县| 宁都县| 襄汾县| 宁阳县| 宁津县| 师宗县| 安国市| 江源县| 徐州市| 上蔡县|