隨筆 - 117  文章 - 72  trackbacks - 0

          聲明:原創(chuàng)作品(標(biāo)有[原]字樣)轉(zhuǎn)載時(shí)請(qǐng)注明出處,謝謝。

          常用鏈接

          常用設(shè)置
          常用軟件
          常用命令
           

          訂閱

          訂閱

          留言簿(7)

          隨筆分類(lèi)(130)

          隨筆檔案(123)

          搜索

          •  

          積分與排名

          • 積分 - 155531
          • 排名 - 390

          最新評(píng)論

          Hibernate中對(duì)繼承關(guān)系的映射有三種方法:
          1、每一個(gè)具體子類(lèi)映射成單個(gè)數(shù)據(jù)庫(kù)表,而抽象基類(lèi)不參與映射。

          優(yōu)點(diǎn):數(shù)據(jù)操作實(shí)現(xiàn)簡(jiǎn)單,每個(gè)表中都包含自己所需要的具體子類(lèi)的所有信息,減少了多表關(guān)聯(lián)操作時(shí)的性能消耗。

          缺點(diǎn):
          類(lèi)的修改會(huì)導(dǎo)致相對(duì)應(yīng)的表及其子類(lèi)所對(duì)應(yīng)表的更改。不支持多態(tài)查詢。

          應(yīng)用:
          適合在類(lèi)層次結(jié)構(gòu)上有一定數(shù)量的抽象類(lèi)的情況下使用。

          2、將整個(gè)類(lèi)層次映射為單個(gè)數(shù)據(jù)庫(kù)表。
          這對(duì)于子類(lèi)屬性不多的情況非常有效。每個(gè)子類(lèi)由識(shí)別列(discriminator column)區(qū)分。

          優(yōu)點(diǎn):
          實(shí)現(xiàn)簡(jiǎn)單,并支持多態(tài)。同時(shí)數(shù)據(jù)訪問(wèn)也比較簡(jiǎn)單,因?yàn)閿?shù)據(jù)庫(kù)表中包含了所有需要的信息。

          缺點(diǎn):
          增加類(lèi)層次中的耦合,類(lèi)層次中任何類(lèi)的屬性的增加都有會(huì)導(dǎo)致表的變更。另外,對(duì)子類(lèi)屬性的修改錯(cuò)誤將會(huì)影響到整個(gè)類(lèi)的層次結(jié)構(gòu)。當(dāng)然也浪費(fèi)了大量的數(shù)據(jù)庫(kù)空間。表中引入?yún)^(qū)分子類(lèi)的字段,子類(lèi)的字段不能創(chuàng)建為空。

          3、繼承關(guān)系中每個(gè)類(lèi)均映射為一個(gè)數(shù)據(jù)庫(kù)表
          優(yōu)點(diǎn):
          此時(shí),與面向?qū)ο蟮母拍钍且恢碌模@種映射實(shí)現(xiàn)策略的最大好處就是關(guān)系模型完全標(biāo)準(zhǔn)化,關(guān)系模型和領(lǐng)域模型完全一致,易于修改基類(lèi)和增加新的子類(lèi)。

          缺點(diǎn):
          數(shù)據(jù)庫(kù)中存在大量的表,為細(xì)粒度級(jí)的數(shù)據(jù)模型,訪問(wèn)數(shù)據(jù)時(shí)將存在大量的關(guān)聯(lián)表的操作,效率較低。



          詳細(xì)內(nèi)容:
          Hibernate繼承映射-具體類(lèi)映射為數(shù)據(jù)庫(kù)表 : http://www.aygfsteel.com/wintys/archive/2009/06/21/hibernate_inheritance_concrete.html

          Hibernate繼承映射-整個(gè)類(lèi)層次映射為單個(gè)數(shù)據(jù)庫(kù)表 : http://www.aygfsteel.com/wintys/archive/2009/06/21/hibernate_inheritance_allinone.html

          Hibernate繼承映射-繼承關(guān)系中每個(gè)類(lèi)均映射為一個(gè)數(shù)據(jù)庫(kù)表: http://www.aygfsteel.com/wintys/archive/2009/06/21/hibernate_inheritance_separate.html

          [附件]:
          以上三種繼承映射的源代碼:hibernate_inheritance.zip
          posted on 2009-06-21 14:24 天堂露珠 閱讀(293) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): Hibernate
          主站蜘蛛池模板: 新竹市| 蓝田县| 高碑店市| 东宁县| 昌吉市| 洪泽县| 汝南县| 浪卡子县| 临沧市| 南岸区| 泰安市| 清新县| 和平县| 响水县| 阿克| 色达县| 洛宁县| 武乡县| 和平县| 通榆县| 武鸣县| 大同市| 沂源县| 铜川市| 西城区| 宝丰县| 城口县| 富川| 固阳县| 章丘市| 荔浦县| 资中县| 北票市| 陈巴尔虎旗| 德保县| 登封市| 山东省| 南和县| 乌恰县| 彭州市| 永嘉县|