<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
    可以畫一些圖描述一下
    主站蜘蛛池模板: 最近中文字幕大全免费版在线| 国产亚洲高清在线精品不卡| 美女被cao网站免费看在线看| 亚洲国产成人久久一区久久| 偷自拍亚洲视频在线观看| 在线精品免费视频| 亚洲αⅴ无码乱码在线观看性色| 免费无码精品黄AV电影| 亚洲一区二区三区免费| 国产AV无码专区亚洲AV手机麻豆| 亚洲春色另类小说| 在人线av无码免费高潮喷水| 亚洲av日韩av综合| 日韩在线免费看网站| 一级A毛片免费观看久久精品 | 男女一进一出抽搐免费视频| 久久久久无码专区亚洲av| a级毛片免费高清毛片视频| 亚洲影院在线观看| 四虎影院免费视频| 四虎影视在线看免费观看| 亚洲成a人片在线观看无码专区| 亚洲免费中文字幕| 亚洲1区2区3区精华液| 国产亚洲精品精品国产亚洲综合 | 国产卡一卡二卡三免费入口| 亚洲中文字幕无码mv| 亚洲一级片免费看| 97免费人妻在线视频| 亚洲av永久无码一区二区三区| 亚洲精品成人无码中文毛片不卡| 无码人妻精品中文字幕免费东京热| 亚洲精品无码中文久久字幕| 国产成人亚洲精品91专区手机| 巨波霸乳在线永久免费视频| 日日摸日日碰夜夜爽亚洲| 亚洲av无码国产精品色午夜字幕| 99精品全国免费观看视频| 两个人看的www视频免费完整版| 亚洲三级中文字幕| 亚洲人成人无码网www国产|