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

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

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

    posts - 68, comments - 19, trackbacks - 0, articles - 1
    1.many to one 多對一映射
    此種模型最經(jīng)典的為user-->group,即站在user的角度上看,是由多個user對象屬于一個group對象。反過來的話,則是一個group對應多個user,那是一對多關(guān)系。此種映射一旦建立,能在得到user對象的時候通過對象之間的關(guān)系得到group的屬性。

    類:
    User:
    private int id;
    private String name;
    private Group group;
    Group: 
    private int id;
    private String name;

    主要映射文件:
    <class name="com.vle.domain.User" table="t_user">
      <id name="id">
       <generator class="native"/>
      </id>
      <property name="name"/>
      <many-to-one name="group" column="groupid"/>
     </class>

    得到屬性值:
    User u=(User) session.load(User.class, 1);
    System.out.print(u.getName()+"-->"+u.getGroup().getName());

    2.one2one 主鍵關(guān)聯(lián) 單向映射
    Person-->IdCard 一個人對應一個身份證,"人"引用了"身份證"的主鍵作為外鍵,同時也作為"人"這張表的主鍵。
    Person: 
    private int id;
    private String name;
    private IdCard idCard;
    IdCard:
    private int id;
    private String cardNo;

    主要映射文件:
    <class name="com.vle.domain.Person" table="t_person">
      <id name="id">
       <!-- 通過foreign得到id生成策略,foreign會得到關(guān)聯(lián)對象的標示 -->
       <generator class="foreign">
        <!-- property指的是建立關(guān)系的關(guān)聯(lián)對象,即Person中引用IdCard的idCard -->
        <param name="property">idCard</param>
       </generator>
      </id>
      <property name="name"/>
       <!-- 使用one-to-one標簽進行描述,不會改變表結(jié)構(gòu),讓hibernate加載關(guān)聯(lián)對象,默認關(guān)聯(lián)對象的主鍵作為此類的主鍵
        使用 constrained生成外鍵約束
        name:指加載對象時,通過Person指定的主鍵(也就是idCard)把IdCard的關(guān)聯(lián)加上去
        -->
      <one-to-one name="idCard" constrained="true"/>
     </class>

    3.one2one 主鍵關(guān)聯(lián) 雙向映射
    需要在IdCard對象中加入對Person的引用 
    IdCard:
    private int id;
    private String cardNo;
    private Person person;

    并且需要在IdCard.hbm.xml中加入對引用的描述:
     <class name="com.vle.domain.IdCard" table="t_idcard">
      <id name="id">
       <generator class="native"/>
      </id>
      <property name="cardNo"/>
      <one-to-one name="person"/>
     </class>

    4 one2one 唯一外鍵關(guān)聯(lián) 單向關(guān)聯(lián)
    在person中持有idcard的引用:
    private IdCard idCard;
    Person映射文件:
     <class name="com.vle.domain.Person" table="t_person">
      <id name="id">
       <generator class="native"/>
        </id>
      <property name="name"/>
      <many-to-one name="idCard" unique="true"/>
     </class>
    一對一唯一外鍵關(guān)聯(lián)可以看做多對一的一種特例,只需要在many to one標簽中將unique的屬性設置為true即可。

    5 one2one 唯一外鍵關(guān)聯(lián) 雙向關(guān)聯(lián)
    需要在IdCard中持有對Person的引用
    private Person person;
    IdCard映射文件:
     <one-to-one name="person" property-ref="idCard"/>
    將person用一對一標簽描述,并且引用了外鍵idCard。


    Feedback

    # re: Hibernate中的幾種經(jīng)典對象模型和關(guān)系模型的映射(1)  回復  更多評論   

    2011-01-03 09:55 by ugg boots stores
    向左走,向右走,呵呵、、我喜歡

    # re: Hibernate中的幾種經(jīng)典對象模型和關(guān)系模型的映射(1)  回復  更多評論   

    2011-01-04 12:50 by xylz
    可以畫一些圖描述一下
    主站蜘蛛池模板: 亚洲日本国产综合高清| 亚洲?V乱码久久精品蜜桃| 99视频免费播放| 最近免费中文字幕中文高清 | 亚洲第一视频在线观看免费| 日韩一级在线播放免费观看| 免费一本色道久久一区| 日韩欧毛片免费视频| 国产精品成人免费一区二区 | 全黄大全大色全免费大片| 精品久久久久久国产免费了| 一个人看的免费观看日本视频www| 免费播放国产性色生活片| 成人免费视频一区二区| 国产精品小视频免费无限app| XXX2高清在线观看免费视频| 十八禁在线观看视频播放免费| 三级网站在线免费观看| 久久精品免费观看国产| 国产精品免费AV片在线观看| 免费播放一区二区三区| 在线观看AV片永久免费| 妞干网手机免费视频| 四虎影视免费永久在线观看| 免费A级毛片无码久久版| 4338×亚洲全国最大色成网站| 亚洲女同成av人片在线观看| 亚洲天堂男人天堂| 77777亚洲午夜久久多喷| 亚洲国产精品无码久久久秋霞1 | 亚洲avav天堂av在线不卡| 亚洲人成电影亚洲人成9999网| 亚洲欧洲日产国码二区首页| 中文无码亚洲精品字幕| 亚洲а∨精品天堂在线| 男人和女人高潮免费网站| 两个人看www免费视频| 国产91免费在线观看| 热久久精品免费视频| 精品亚洲视频在线观看| 亚洲国产高清在线|