隨筆-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 小米 閱讀(5166) 評論(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
          詳細點就更好了   回復  更多評論
            
          主站蜘蛛池模板: 哈尔滨市| 长宁区| 富锦市| 奉新县| 定陶县| 任丘市| 边坝县| 牙克石市| 离岛区| 大新县| 石景山区| 三明市| 合肥市| 夏津县| 辉县市| 苏尼特左旗| 新源县| 朝阳区| 积石山| 武山县| 楚雄市| 望城县| 乌海市| 杭锦旗| 大名县| 重庆市| 民权县| 郯城县| 嘉义市| 拉萨市| 泉州市| 盐源县| 庆元县| 饶平县| 青田县| 通州市| 章丘市| 江陵县| 普洱| 敦煌市| 永胜县|