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

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

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

    posts - 16,comments - 17,trackbacks - 0



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

    1. 每簇類使用一個表;
    2. 每個子類一個表;
    3. 每個具體內一個表(有限制)。
    假設我們有四個類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
    }

    • 每簇類使用一個表
           使用每簇類使用一個表的策略時,有一個限制就時子類不能有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>

    • 每個子類一個表
           使用每個子類一個表的策略時,可以使用一個映射文件實現,也可以分成多個映射文件來實現。每個子類一個映射文件的情況:
           文件名: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>

           每個子類一個表的策略實際上一種one-to-one的映射。
    • 每個具體內一個表(有限制)
           使用每個具體內一個表(有限制)策略時,每一個子類的映射文件將要包含所有父類中的屬性,映射文件:
           文件名: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) 評論(1)  編輯  收藏 所屬分類: JAVA 相關技術

    FeedBack:
    # re: Hibernate中的繼承映射
    2008-04-26 11:15 | 無可奈何花落去
    錯別字也太多了點吧  回復  更多評論
      
    主站蜘蛛池模板: 亚洲人成在线播放网站| 亚洲午夜精品久久久久久浪潮| 亚洲精品无码mv在线观看网站| 一边摸一边爽一边叫床免费视频| 国产做床爱无遮挡免费视频| 亚洲熟妇av午夜无码不卡| 女人毛片a级大学毛片免费| 亚洲中文字幕乱码熟女在线| 国外成人免费高清激情视频| 亚洲熟妇无码一区二区三区 | 国产又黄又爽胸又大免费视频| 国产成人毛片亚洲精品| fc2成年免费共享视频18| 亚洲精品乱码久久久久久按摩| 成人片黄网站色大片免费观看cn| 亚洲精品乱码久久久久久久久久久久| 你懂的免费在线观看| 久久久久亚洲Av片无码v| 18禁美女裸体免费网站| 97久久国产亚洲精品超碰热| 日本最新免费不卡二区在线| 男男gay做爽爽的视频免费| 国产亚洲AV夜间福利香蕉149| 久久免费线看线看| 亚洲成综合人影院在院播放| 在线永久免费观看黄网站| 一个人看的www免费高清| 亚洲av网址在线观看| 4虎永免费最新永久免费地址| 亚洲日韩中文字幕一区| 亚洲国产成人精品无码久久久久久综合| CAOPORM国产精品视频免费| 少妇中文字幕乱码亚洲影视| 91视频国产免费| 成人精品综合免费视频| 亚洲尹人九九大色香蕉网站| 成人毛片18女人毛片免费视频未| 一级一看免费完整版毛片| 亚洲日本香蕉视频| 亚洲AⅤ永久无码精品AA | 91精品免费久久久久久久久|