隨筆-57  評論-202  文章-17  trackbacks-0

                在Java語言中,對象之間的比較可以通過引用比較(==)和內容比較(equals)兩種方式進行,而在Hibernate的實體對象的比較是通過主鍵值來比較,如果要實現自己的識別邏輯,則需要重寫equals方法和hashCode方法。

                檢查數據對象改變檢查的一般策略有下面兩種:
                1. 數據對象監控
                   數據對象監控的實現方式,通過攔截器對數據對象的設值方法進行攔截。一旦數據對象的設置方法被調用,則將其標志為“待更新”狀態,之后在數據庫操作時將其更新到對應的庫表。
                2. 數據版本對比
                   在持久層框架中維持數據對象的最近讀取版本,當數據提交時將提交數據與此版本進行比對,如果發生變化則將其同步到數據庫對應的庫表。

                Hibernate采取的是第二種檢查策略。它采用一個內部數據結構"EntityEntry"保存對應實體類的狀態信息。

                對于級聯對象的更新,Hibernate將根據unsaved-value進行判定。首先Hibernate會取出目標對象的id。之后,將此值與unsaved-value進行比對,如果相等,則認為目標對象尚未保存,否則,認為對象已經保存,無需再進行保存操作。

          posted on 2005-06-22 16:32 小米 閱讀(5160) 評論(4)  編輯  收藏 所屬分類: Hibernate

          評論:
          # re: 《深入淺出Hibernate》讀書筆記(2)——實體對象識別 2005-08-03 10:25 | wang
          wo men   回復  更多評論
            
          # re: 《深入淺出Hibernate》讀書筆記(2)——實體對象識別 2006-05-31 10:29 | pc
          http://www.kpwang.com/jsp_java/200644155011.htm Java連接lotus的源代碼
          http://www.kpwang.com/jsp_java/200644154949.htm Java封裝數據結果集
          http://www.kpwang.com/jsp_java/200644154712.htm Java的垃圾回收機制詳解和調優  回復  更多評論
            
          # re: 《深入淺出Hibernate》讀書筆記(2)——實體對象識別 2006-05-31 10:29 | pc
          http://www.kpwang.com/jsp_java/200644165429.htm Java程序中的事件處理
          http://www.kpwang.com/jsp_java/20064416536.htm Java多線程設計模式
          http://www.kpwang.com/jsp_java/200644155359.htm Java程序如何穿透帶有密碼驗證的代理  回復  更多評論
            
          # re: 《深入淺出Hibernate》讀書筆記(2)——實體對象識別[未登錄] 2008-08-01 22:22 | moonandsun
          詳細點就更好了   回復  更多評論
            
          主站蜘蛛池模板: 隆化县| 通山县| 靖江市| 衡南县| 天祝| 安吉县| 泽州县| 杨浦区| 涟水县| 河北省| 庄河市| 安吉县| 瑞丽市| 长沙市| 安新县| 桐梓县| 集贤县| 来宾市| 内丘县| 贵溪市| 江永县| 保亭| 商水县| 波密县| 黔东| 新干县| 分宜县| 双流县| 开远市| 荥经县| 玉溪市| 广州市| 章丘市| 南汇区| 襄垣县| 广河县| 黎川县| 大厂| 巫溪县| 枣强县| 仪陇县|