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

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

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

    向左走,向右走。。。
    永遠(yuǎn)不回頭
    posts - 16,comments - 17,trackbacks - 0



    Hibernate的繼承映射包含了三種不同的策略:

    1. 每簇類使用一個(gè)表;
    2. 每個(gè)子類一個(gè)表;
    3. 每個(gè)具體內(nèi)一個(gè)表(有限制)。
    假設(shè)我們有四個(gè)類Animal,Dog,Cat,其代碼如下:
    文件名:Animal.java
    class Animal {
        
    private String identifier;
        
    private String name;
        
    private String category;
        
    // setter and getter
    }

    文件名:Dog.java
    class Dog extends Animal {
        
    private String 
        
    // setter and getter
    }

    文件名:Cat.java
    class Cat extends Animal {
        
    private String 
        
    // setter and getter
    }

    • 每簇類使用一個(gè)表
           使用每簇類使用一個(gè)表的策略時(shí),有一個(gè)限制就時(shí)子類不能有NOT NULL,映射文件為:
           文件名:Animal.hbm.xml
           <class name="Animal" table="TB_ANIMAL">
              
    <id name="identifier" type="string" column="IDENTIFIER">
                 
    <generator class="uuid.hex"/>
              
    </id>
              
    <discriminator column="ANIMAL_TYPE" type="string"/>
              
    <property name="name" column="NAME" type="string"/>
              
              
    <subclass name="Dog" discriminator-value="DOG">
                 
              
    </subclass>
              
    <subclass name="Cat" discriminator-value="CAT">
                 
              
    </subclass>
           
    </class>

    • 每個(gè)子類一個(gè)表
           使用每個(gè)子類一個(gè)表的策略時(shí),可以使用一個(gè)映射文件實(shí)現(xiàn),也可以分成多個(gè)映射文件來實(shí)現(xiàn)。每個(gè)子類一個(gè)映射文件的情況:
           文件名:Animal.hbm.xml
           <class name="Animal" table="ANIMAL">
              
    <id name="identifier" column="IDENTIFIER" type="string">
                 
    <generator class="uuid.hex"/>
              
    </id>
              
    <property >
           
    </class>
           文件名:Dog.hbm.xml
           
    <joined-subclass name="Dog" table="DOG" extends="Animal">
              
    <key column="DOG_ID"/>
              
           
    </joined-subclass>
           文件名:Cat.hbm.xml
           
    <joined-subclass name="Cat" table="CAT" extends="Cat">
              
    <key column="CAT_ID"/>
              
           
    </joined-subclass>

           每個(gè)子類一個(gè)表的策略實(shí)際上一種one-to-one的映射。
    • 每個(gè)具體內(nèi)一個(gè)表(有限制)
           使用每個(gè)具體內(nèi)一個(gè)表(有限制)策略時(shí),每一個(gè)子類的映射文件將要包含所有父類中的屬性,映射文件:
           文件名:Dog.hbm.xml
           <class name="Dog" table="DOG">
              
    <id name="identifier" column="IDENTIFIER" type="string">
                 
    <generator class="uuid.hex"/>
              
    </id>
              
    <property name="name" column="NAME" type="string"/>
              
           
    </class>
           文件名:Cat.hbm.xml
           
    <class name="Cat" table="CAT">
              
    <id name="identifier" column="IDENTIFIER" type="string">
                 
    <generator class="uuid.hex"/>
              
    </id>
              
    <property name="name" column="NAME" type="string"/>
              
           
    </class>




    posted on 2005-03-02 22:31 非飛 閱讀(4601) 評(píng)論(1)  編輯  收藏 所屬分類: JAVA 相關(guān)技術(shù)

    FeedBack:
    # re: Hibernate中的繼承映射
    2008-04-26 11:15 | 無可奈何花落去
    錯(cuò)別字也太多了點(diǎn)吧  回復(fù)  更多評(píng)論
      
    主站蜘蛛池模板: 亚洲最大av无码网址| 亚洲第一永久AV网站久久精品男人的天堂AV | 手机永久免费的AV在线电影网| 夜夜嘿视频免费看| 亚洲AV无码一区二区三区牲色| 最近中文字幕mv免费高清视频7| 中文字幕亚洲综合小综合在线| 青娱乐免费视频在线观看| 亚洲AV日韩综合一区尤物| 国产精品久久免费视频| 污网站在线观看免费| 国产亚洲精品岁国产微拍精品| 97人妻精品全国免费视频| 久久久久久亚洲Av无码精品专口| 国产高清免费视频| 狠狠入ady亚洲精品| 亚洲一级片内射网站在线观看| a级毛片毛片免费观看久潮 | 午夜视频在线观看免费完整版| 亚洲av成人一区二区三区在线播放| 四虎影视永久免费观看| 国产成人免费ā片在线观看老同学| 久久精品国产亚洲AV大全| 国产卡二卡三卡四卡免费网址 | 色婷婷7777免费视频在线观看| 亚洲精品无码国产片| 亚洲一区视频在线播放| a在线观看免费视频| 亚洲一线产区二线产区精华| 国产小视频在线观看免费| 久久精品成人免费网站| 国产成人精品亚洲2020| 亚洲无线一二三四区手机| 99视频在线精品免费| 国产精品亚洲va在线观看| 亚洲AV无码AV男人的天堂| 成在人线AV无码免费| a级毛片高清免费视频| 亚洲乱码中文字幕在线| 亚洲AV无码国产精品色午友在线| 永久免费无码网站在线观看|