hibernate實體對象生命周期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。

                下圖是我畫的實體對象生命周期的狀態轉換圖:

          vopolife.JPG

          posted on 2009-03-26 00:04 MichaelLee 閱讀(561) 評論(0)  編輯  收藏 所屬分類: Hibernate

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

          導航

          統計

          公告

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

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 泌阳县| 阜南县| 沾益县| 镇原县| 娄底市| 曲周县| 北碚区| 体育| 临安市| 恩施市| 凌云县| 西平县| 漳平市| 孟州市| 淮北市| 晋中市| 沙田区| 兴文县| 修水县| 大城县| 临夏县| 龙井市| 涿州市| 张家港市| 梅河口市| 纳雍县| 霍山县| 连平县| 沧州市| 揭东县| 吐鲁番市| 陆川县| 霍城县| 广宗县| 汤原县| 阳信县| 安陆市| 万年县| 新乡市| 于都县| 瓦房店市|