隨筆-57  評(píng)論-202  文章-17  trackbacks-0

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

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

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

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

          posted on 2005-06-22 16:32 小米 閱讀(5166) 評(píng)論(4)  編輯  收藏 所屬分類(lèi): Hibernate

          評(píng)論:
          # re: 《深入淺出Hibernate》讀書(shū)筆記(2)——實(shí)體對(duì)象識(shí)別 2005-08-03 10:25 | wang
          # re: 《深入淺出Hibernate》讀書(shū)筆記(2)——實(shí)體對(duì)象識(shí)別 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ù)  更多評(píng)論
            
          # re: 《深入淺出Hibernate》讀書(shū)筆記(2)——實(shí)體對(duì)象識(shí)別 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è)計(jì)模式
          http://www.kpwang.com/jsp_java/200644155359.htm Java程序如何穿透帶有密碼驗(yàn)證的代理  回復(fù)  更多評(píng)論
            
          # re: 《深入淺出Hibernate》讀書(shū)筆記(2)——實(shí)體對(duì)象識(shí)別[未登錄](méi) 2008-08-01 22:22 | moonandsun
          詳細(xì)點(diǎn)就更好了   回復(fù)  更多評(píng)論
            
          主站蜘蛛池模板: 道孚县| 修武县| 临西县| 扎囊县| 亚东县| 保靖县| 衡水市| 晋宁县| 顺平县| 秀山| 伊春市| 金堂县| 乳源| 耿马| 漳浦县| 鸡西市| 昭平县| 西安市| 喜德县| 盐边县| 黄山市| 崇明县| 沧州市| 响水县| 尖扎县| 天全县| 雷山县| 福安市| 治多县| 韶关市| 襄汾县| 通城县| 阿荣旗| 邵阳市| 武川县| 即墨市| 溆浦县| 林甸县| 闽侯县| 布拖县| 荔波县|