<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中的繼承關(guān)系

    Hibernate中支持3種形式實(shí)現(xiàn)繼承關(guān)系:
    1. Table per concrete class 表與子類之間獨(dú)立一對(duì)一關(guān)系
    2. Table per subclass 每個(gè)子類對(duì)應(yīng)一張子表,并與主類共享主表
    3. Table per class hierarchy 表與類一對(duì)多關(guān)系

    1. Table per concrete class
    數(shù)據(jù)庫:
    父類沒有對(duì)應(yīng)的表,每個(gè)子類獨(dú)立對(duì)應(yīng)一張表,父類中的公共屬性將在每一張表中以相同冗余字段的形式出現(xiàn)。
    映射文件:子類對(duì)應(yīng)的Hibernate的配映射文件與普通映射文件沒有特別區(qū)別,只是通過<class>節(jié)點(diǎn)的 polymorphism="implicit" 屬性實(shí)現(xiàn)隱式多態(tài)模式來實(shí)現(xiàn)與父類之間的繼承關(guān)系。

    2. Table per subclass
    數(shù)據(jù)庫:父類單獨(dú)映射一張主表,而每個(gè)子類分別映射一張子表。子表和主表通過外鍵相關(guān)聯(lián)。
    映射文件:在映射文件中通過 <joined-subclass> 節(jié)點(diǎn)來表示主類和子類之間的繼承關(guān)系,如下:

    <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
    數(shù)據(jù)庫:用一張表對(duì)應(yīng)所有子類,包含所有子類字段,通過一個(gè)標(biāo)示類別的字段來區(qū)分不同子類對(duì)應(yīng)的數(shù)據(jù)。
    映射文件:通過<subclass>?和<disriminator>節(jié)點(diǎn)來對(duì)不同子類加以區(qū)別,如下:

    <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帛羅閣 閱讀(1180) 評(píng)論(0)  編輯  收藏 所屬分類: 數(shù)據(jù)庫

    導(dǎo)航

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

    統(tǒng)計(jì)

    常用鏈接

    留言簿(15)

    隨筆分類

    隨筆檔案

    相冊(cè)

    收藏夾

    博客

    文檔

    站點(diǎn)

    論壇

    搜索

    積分與排名

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 免费无码又爽又刺激网站| 亚洲国产精品久久| 无码精品人妻一区二区三区免费看| 日本特黄a级高清免费大片| 亚洲欧美日韩国产成人| 美女被爆羞羞网站免费| 国产精品极品美女免费观看| 亚洲第一第二第三第四第五第六 | 最近的中文字幕大全免费版| 自拍日韩亚洲一区在线| 成全影视免费观看大全二| 亚洲国产区男人本色| 国产伦精品一区二区三区免费迷| 亚洲AV性色在线观看| 东方aⅴ免费观看久久av| 亚洲人成网站在线播放vr| 免费成人高清在线视频| 久久丫精品国产亚洲av| 18禁超污无遮挡无码免费网站国产 | 一级毛片不卡片免费观看| 亚洲美女大bbbbbbbbb| 国产香蕉免费精品视频| WWW亚洲色大成网络.COM| 日韩亚洲变态另类中文| 免费无码一区二区三区| 亚洲jizzjizz在线播放久| 啊v在线免费观看| 免费成人在线电影| 亚洲精华液一二三产区| 久久乐国产精品亚洲综合| 99久久99热精品免费观看国产| 亚洲jjzzjjzz在线播放| 免费国内精品久久久久影院| 免费观看成人久久网免费观看| 亚洲av无码国产综合专区| 亚洲美日韩Av中文字幕无码久久久妻妇 | 国产精品爱啪在线线免费观看| 亚洲AV成人无码网天堂| 国产亚洲真人做受在线观看| 国色精品卡一卡2卡3卡4卡免费| 免费高清A级毛片在线播放|