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

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

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

    java技術

    hibernate spring struts

    BlogJava 聯(lián)系 聚合 管理
      18 Posts :: 0 Stories :: 1 Comments :: 0 Trackbacks
    可能經(jīng)常遇到這樣的情況:
           
    在數(shù)據(jù)庫表中會有這樣的一個字段用來區(qū)別記錄的屬性,如:在客戶表中有一個字段表示客戶級別,當這個記錄為A時是一級客戶,為B時是二級客戶。在用hiberanteOR表示時類可能是這樣的:
           public class Customer{
              private String flag;   //
    表示客戶的級別
              ...
           }    
           
    然后,在程序中手動控制flag的值,但是這樣當每個級的客戶有不同的屬性時Customer類將包含所有級別的屬性,這樣不是很好。
           hibernate
    提供一個Discriminator映射的方法,就是把一個表映射成不同的類,有不同的屬性。

           public class Customer{
              //
    包含所有級別的公共屬性
              ...
            }
           
           public class CustomerA extends Customer{
           //
    只包括一級客戶的特有屬性
            }

           public class CustomerB extends Customer{
           //
    只包含二級客戶特有的屬性
            }
    這樣更符合面向對象的原則,然后在hbm.xml中這樣寫:
    <id name="id" type="int">
        ...
    </id>
    <discriminator column="flag" type="string" />
    <!-- 
    公共屬性的映射 -->
    <subclass name="CustomerA" discriminator-value="A">
    <!-- 
    一級客戶特有屬性的映射
     -->
    </subclass>
    <subclass name="CustomerB" discriminator-value="B">
    <!-- 
    二級客戶特有屬性的映射
     -->
    </subclass>

    這樣就可以單獨的用CustomerA,CustomerB這樣的實例了,做數(shù)據(jù)庫修改時就不用關心flag字段的值了,會自動的加AB


    如果是使用hibernate Annotation而不是xml來描述映謝關系,代碼如下:
    @Entity
    @Table(name = "customer")
    @Inheritance(strategy = InheritanceType.SINGLE_TABLE)
    @DiscriminatorColumn(name = "flag", discriminatorType = DiscriminatorType.STRING)
    public class Customer{
    }

    @Entity
    @DiscriminatorValue(value = "A")
    public class CustomerA extends Customer{
    }

    @Entity
    @DiscriminatorValue(value = "B")
    public class CustomerB extends Customer{
    }

    這樣就可以了。
    posted on 2009-11-27 15:27 just 閱讀(636) 評論(0)  編輯  收藏 所屬分類: JPA

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導航:
     
    主站蜘蛛池模板: 亚洲综合成人婷婷五月网址| 成人黄页网站免费观看大全| 精品亚洲成A人在线观看青青| 国产亚洲综合色就色| 国产免费变态视频网址网站| 中文字幕乱码免费视频| 国内精品99亚洲免费高清| 亚洲aⅴ无码专区在线观看春色 | 亚洲免费人成视频观看| 精品国产_亚洲人成在线高清| 又黄又爽的视频免费看| 成年女人免费碰碰视频| 亚洲电影免费观看| 在线播放免费人成毛片乱码| 一道本在线免费视频| 国产成人高清亚洲一区91| 中文字幕无码精品亚洲资源网久久 | 亚洲色成人WWW永久网站| 亚洲第一黄色网址| 日韩视频免费在线| 丁香花在线观看免费观看| 亚洲精品在线免费观看| 免费国产黄网站在线观看视频 | 国产亚洲福利精品一区| 国产亚洲老熟女视频| 亚洲欧洲中文日韩av乱码| 国产精品jizz在线观看免费| 成年女人毛片免费视频| 国产香蕉九九久久精品免费| 中文毛片无遮挡高潮免费| 国产精品怡红院永久免费| 亚洲免费网站在线观看| 99久久国产热无码精品免费| 69xx免费观看视频| 日韩欧毛片免费视频| 99久久这里只精品国产免费| 欧亚精品一区三区免费| 四虎免费在线观看| 拔擦拔擦8x华人免费久久| 无码不卡亚洲成?人片| 亚洲精品岛国片在线观看|