隨筆-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 小米 閱讀(5169) 評論(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
          詳細點就更好了   回復  更多評論
            
          主站蜘蛛池模板: 清水县| 蚌埠市| 濉溪县| 罗江县| 衡南县| 弥勒县| 浠水县| 阜平县| 额尔古纳市| 湖南省| 浙江省| 渝北区| 如东县| 瑞金市| 隆子县| 迭部县| 蓝田县| 临澧县| 阳东县| 将乐县| 余干县| 金平| 岳阳市| 磐安县| 新河县| 油尖旺区| 墨竹工卡县| 皋兰县| 樟树市| 平凉市| 武平县| 波密县| 宣化县| 双牌县| 故城县| 涡阳县| 象州县| 合山市| 武功县| 宝鸡市| 尼玛县|