<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Dev@Free

    zJun's Tech Weblog

    [深入淺出Hibernate筆記] Hibernate中的繼承關系

    Hibernate中支持3種形式實現繼承關系:
    1. Table per concrete class 表與子類之間獨立一對一關系
    2. Table per subclass 每個子類對應一張子表,并與主類共享主表
    3. Table per class hierarchy 表與類一對多關系

    1. Table per concrete class
    數據庫:
    父類沒有對應的表,每個子類獨立對應一張表,父類中的公共屬性將在每一張表中以相同冗余字段的形式出現。
    映射文件:子類對應的Hibernate的配映射文件與普通映射文件沒有特別區別,只是通過<class>節點的 polymorphism="implicit" 屬性實現隱式多態模式來實現與父類之間的繼承關系。

    2. Table per subclass
    數據庫:父類單獨映射一張主表,而每個子類分別映射一張子表。子表和主表通過外鍵相關聯。
    映射文件:在映射文件中通過 <joined-subclass> 節點來表示主類和子類之間的繼承關系,如下:

    <hibernate-mapping>
    ? <class name="BaseClass" table="T_BASE">
    ??? <id name="id" column="id">
    ????? <generator class="native"/>
    ??? </id>
    ??? <property name="name" column="name"/>
    ??? <!--申明子類1-->
    ??? <joined-subclass name="SubClass1" table="T_SUB1">
    ????? <key column="id"/>
    ????? <property name="subName1" column="subName1"/>
    ??? </joined-subclass>

    ??? <!--申明子類2-->
    ??? <joined-subclass name="SubClass2" table="T_SUB1">
    ????? <key column="id"/>
    ????? <property name="subName2" column="subName2"/>
    ??? </joined-subclass>
    ? </class>
    </hibernate-mapping>

    3. Table per class hierarchy
    數據庫:用一張表對應所有子類,包含所有子類字段,通過一個標示類別的字段來區分不同子類對應的數據。
    映射文件:通過<subclass>?和<disriminator>節點來對不同子類加以區別,如下:

    <hibernate-mapping>
    ? <class name="BaseClass" table="T_BASE">
    ??? <id name="id" column="id">
    ????? <generator class="native"/>
    ??? </id>
    ??? <discriminator column="category" type="string"/>??????????????? <------------- 聲明discriminator字段
    ??? <property name="name" column="name"/>
    ????<!--子類1-->?????
    ??? <subclass name="SubClass1" discriminator-value="1">???????<------------- discriminator為1,則是子類1
    ?????? <property name="subName1" column="subName1"/>
    ??? </subclass>
    ??
    ??? <!--子類2-->?????
    ????<subclass name="SubClass2" discriminator-value="2">?????? <------------- discriminator為2,則是子類2
    ?????? <property name="subName2" column="subName2"/>
    ??? </subclass>

    ? </class>
    <hibernate-mapping>

    posted on 2006-08-16 15:15 zJun's帛羅閣 閱讀(1171) 評論(0)  編輯  收藏 所屬分類: 數據庫

    導航

    <2006年8月>
    303112345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    統計

    常用鏈接

    留言簿(15)

    隨筆分類

    隨筆檔案

    相冊

    收藏夾

    博客

    文檔

    站點

    論壇

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 99亚洲精品卡2卡三卡4卡2卡| 亚洲一区二区中文| 日韩激情淫片免费看| 免费大黄网站在线观看| 亚洲精品国产精品| 免费吃奶摸下激烈视频| 五月天婷婷精品免费视频| 免费看又黄又无码的网站 | 久久青草91免费观看| 国产在线a免费观看| 亚洲乱码中文字幕手机在线| 真正全免费视频a毛片| 亚洲国产香蕉人人爽成AV片久久 | 亚洲日韩区在线电影| 四虎在线成人免费网站| 亚洲三级在线观看| 久草免费福利视频| 亚洲国产高清视频在线观看| 中文字幕手机在线免费看电影| 亚洲色无码一区二区三区| 99精品视频免费在线观看| 亚洲一区电影在线观看| 国产成人久久AV免费| 亚洲三级在线视频| 国产一级大片免费看| 亚洲综合无码一区二区痴汉| 亚洲免费在线播放| 亚洲综合一区国产精品| 亚洲AV成人潮喷综合网| 日韩内射激情视频在线播放免费| 亚洲国产成人va在线观看网址| 小小影视日本动漫观看免费| 久久av免费天堂小草播放| 亚洲AV中文无码乱人伦在线视色| 久久99久久成人免费播放| 亚洲一级免费毛片| 国产91精品一区二区麻豆亚洲| 朝桐光亚洲专区在线中文字幕| 亚洲人成网77777色在线播放| 色片在线免费观看| 人妻巨大乳hd免费看|