隨筆 - 117  文章 - 72  trackbacks - 0

          聲明:原創作品(標有[原]字樣)轉載時請注明出處,謝謝。

          常用鏈接

          常用設置
          常用軟件
          常用命令
           

          訂閱

          訂閱

          留言簿(7)

          隨筆分類(130)

          隨筆檔案(123)

          搜索

          •  

          積分與排名

          • 積分 - 156402
          • 排名 - 390

          最新評論

          Hibernate中對繼承關系的映射有三種方法:
          1、每一個具體子類映射成單個數據庫表,而抽象基類不參與映射。

          優點:數據操作實現簡單,每個表中都包含自己所需要的具體子類的所有信息,減少了多表關聯操作時的性能消耗。

          缺點:
          類的修改會導致相對應的表及其子類所對應表的更改。不支持多態查詢。

          應用:
          適合在類層次結構上有一定數量的抽象類的情況下使用。

          2、將整個類層次映射為單個數據庫表。
          這對于子類屬性不多的情況非常有效。每個子類由識別列(discriminator column)區分。

          優點:
          實現簡單,并支持多態。同時數據訪問也比較簡單,因為數據庫表中包含了所有需要的信息。

          缺點:
          增加類層次中的耦合,類層次中任何類的屬性的增加都有會導致表的變更。另外,對子類屬性的修改錯誤將會影響到整個類的層次結構。當然也浪費了大量的數據庫空間。表中引入區分子類的字段,子類的字段不能創建為空。

          3、繼承關系中每個類均映射為一個數據庫表
          優點:
          此時,與面向對象的概念是一致的,這種映射實現策略的最大好處就是關系模型完全標準化,關系模型和領域模型完全一致,易于修改基類和增加新的子類。

          缺點:
          數據庫中存在大量的表,為細粒度級的數據模型,訪問數據時將存在大量的關聯表的操作,效率較低。



          詳細內容:
          Hibernate繼承映射-具體類映射為數據庫表 : http://www.aygfsteel.com/wintys/archive/2009/06/21/hibernate_inheritance_concrete.html

          Hibernate繼承映射-整個類層次映射為單個數據庫表 : http://www.aygfsteel.com/wintys/archive/2009/06/21/hibernate_inheritance_allinone.html

          Hibernate繼承映射-繼承關系中每個類均映射為一個數據庫表: http://www.aygfsteel.com/wintys/archive/2009/06/21/hibernate_inheritance_separate.html

          [附件]:
          以上三種繼承映射的源代碼:hibernate_inheritance.zip
          posted on 2009-06-21 14:24 天堂露珠 閱讀(298) 評論(0)  編輯  收藏 所屬分類: Hibernate
          主站蜘蛛池模板: 涪陵区| 大兴区| 光山县| 枝江市| 永新县| 乌拉特后旗| 百色市| 全州县| 曲阜市| 阜新市| 仁化县| 商都县| 武隆县| 稷山县| 新乡市| 霍州市| 十堰市| 红河县| 镇康县| 巨鹿县| 岱山县| 阳谷县| 大姚县| 沙湾县| 新龙县| 麟游县| 奉新县| 涿鹿县| 安龙县| 甘南县| 新闻| 神木县| 宁国市| 休宁县| 鲁甸县| 绿春县| 临猗县| 建宁县| 太白县| 都安| 密山市|