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

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

                檢查數(shù)據(jù)對象改變檢查的一般策略有下面兩種:
                1. 數(shù)據(jù)對象監(jiān)控
                   數(shù)據(jù)對象監(jiān)控的實現(xiàn)方式,通過攔截器對數(shù)據(jù)對象的設(shè)值方法進(jìn)行攔截。一旦數(shù)據(jù)對象的設(shè)置方法被調(diào)用,則將其標(biāo)志為“待更新”狀態(tài),之后在數(shù)據(jù)庫操作時將其更新到對應(yīng)的庫表。
                2. 數(shù)據(jù)版本對比
                   在持久層框架中維持?jǐn)?shù)據(jù)對象的最近讀取版本,當(dāng)數(shù)據(jù)提交時將提交數(shù)據(jù)與此版本進(jìn)行比對,如果發(fā)生變化則將其同步到數(shù)據(jù)庫對應(yīng)的庫表。

                Hibernate采取的是第二種檢查策略。它采用一個內(nèi)部數(shù)據(jù)結(jié)構(gòu)"EntityEntry"保存對應(yīng)實體類的狀態(tài)信息。

                對于級聯(lián)對象的更新,Hibernate將根據(jù)unsaved-value進(jìn)行判定。首先Hibernate會取出目標(biāo)對象的id。之后,將此值與unsaved-value進(jìn)行比對,如果相等,則認(rèn)為目標(biāo)對象尚未保存,否則,認(rèn)為對象已經(jīng)保存,無需再進(jìn)行保存操作。

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

          評論:
          # re: 《深入淺出Hibernate》讀書筆記(2)——實體對象識別 2005-08-03 10:25 | wang
          wo men   回復(fù)  更多評論
            
          # 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封裝數(shù)據(jù)結(jié)果集
          http://www.kpwang.com/jsp_java/200644154712.htm Java的垃圾回收機(jī)制詳解和調(diào)優(yōu)  回復(fù)  更多評論
            
          # 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多線程設(shè)計模式
          http://www.kpwang.com/jsp_java/200644155359.htm Java程序如何穿透帶有密碼驗證的代理  回復(fù)  更多評論
            
          # re: 《深入淺出Hibernate》讀書筆記(2)——實體對象識別[未登錄] 2008-08-01 22:22 | moonandsun
          詳細(xì)點就更好了   回復(fù)  更多評論
            
          主站蜘蛛池模板: 梅州市| 武城县| 南京市| 阜城县| 广汉市| 中方县| 澄江县| 武穴市| 石渠县| 鹿邑县| 都昌县| 赤城县| 太白县| 潮州市| 抚顺市| 香格里拉县| 宁海县| 江口县| 辽中县| 从化市| 侯马市| 莱州市| 德阳市| 乌恰县| 达拉特旗| 江北区| 南木林县| 兴海县| 新竹县| 宜兰县| 南宫市| 房山区| 满城县| 平安县| 科尔| 那曲县| 饶平县| 长葛市| 吕梁市| 天气| 蒙阴县|