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:04 MichaelLee 閱讀(561) 評論(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)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 顺昌县| 上杭县| 磴口县| 姚安县| 综艺| 眉山市| 莒南县| 绥滨县| 北海市| 安康市| 侯马市| 聊城市| 仪陇县| 陇西县| 永靖县| 新民市| 乐业县| 昭平县| 老河口市| 都匀市| 泸州市| 缙云县| 固安县| 霸州市| 灌阳县| 台州市| 达日县| 武邑县| 丽水市| 礼泉县| 阳高县| 兰考县| 峨边| 泰安市| 五莲县| 阳新县| 子洲县| 贡觉县| 丹东市| 中山市| 阜城县|