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

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

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

    隨筆 - 6  文章 - 129  trackbacks - 0
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(14)

    隨筆檔案(6)

    文章分類(467)

    文章檔案(423)

    相冊

    收藏夾(18)

    JAVA

    搜索

    •  

    積分與排名

    • 積分 - 825738
    • 排名 - 49

    最新評論

    閱讀排行榜

    評論排行榜

      一對一關系在實際生活中是比較常見的,如果學生與身份證的關系,學生與檔案的關系等等。
      一對一關系在Hibernate中的實現有兩種方式,分別是主鍵關聯外鍵關聯

    以主鍵關聯

      主鍵關系的重點是:關聯的兩個實體共享一個主鍵值。
    Student.hbm.xml
    ...
    <hibernate-mapping>
     <class name="model.Student" table="student" lazy="true"><!--把類和表關聯起來-->
      <id name="id" unsaved-value="null"><!--id的產生方式是uuid.hex-->
       <generator class="uuid.hex"/>
      </id>
      <property name="name" type="sring"/>
      <one-to-one name="cer"
        class="model.Certificate"
        fetch="join"
        cascade="all"
      /><!--映射對應的身份證對象-->
     </class>
    </hibernate-mapping>

    Certificate.hbm.xml
    ...
    <hibernate-mapping>
     <class name="model.Certificate" table="certificate" lazy="true">
      <id name="id">
      <!--外鍵生成機制,引用stu對象的主鍵作為certificate數據表的主鍵和外鍵-->
       <generator class="foreign">
        <param name="property">stu</param>
       </generator>

      </id>
      <one-to-one name="stu"
        class="model.Student"
        constrained="true" <!--表示Certificate引用了stu的主鍵作為外鍵-->
      />
     </class>
    </hibernate-mapping>

    上述的兩個配置文件在<one-to-one>標簽中都沒有設置column屬性
    (實際上<one-to-one>標簽本身就沒有column屬性)。


    以外鍵關聯

      以外鍵關聯的重點是:兩個實體各自有不同的主鍵,但其中一個實體有一個外鍵引用
    了另一個表的主鍵。

    Student.hbm.xml
    ...
    <hibernate-mapping>
     <class name="model.Student" table="student" lazy="true">
      <id name="id" nusaved-value="null">
       <generator class="uuid.hex"/>
      </id>
      <property name="name" type="sring"/>
      <one-to-one name="cer"
        class="model.Certificate"
        fetch="join"
        cascade="all"
      /><!--映射對應的身份證對象-->
     </class>
    </hibernate-mapping>
    可以看到Student.hbm.xml和以主鍵關聯時的代碼是一樣的,并沒有改變。

    Certificate.hbm.xml
    ...
    <hibernate-mapping>
     <class name="model.Certificate" table="certificate" lazy="true">
      <id name="id">
       <generator class="uuid.hex"/> <!--不再是foreign了-->
      </id>
      <many-to-one name="stu"
        class="model.Student"
        unique="true" <!--唯一的多對一,其實也就變成了一對一關系-->
        column="stu_id" 
      />

     </class>
    </hibernate-mapping>
    以外鍵關聯的一對一,其實本質上變成了一對多的雙向關聯了,編寫時直接
    按照一對多和多對一的要求編寫,最后在many-to-one這一邊上加上一個
    unique="true"即可。



    posted on 2007-12-29 14:00 Ke 閱讀(1763) 評論(0)  編輯  收藏 所屬分類: hibernate
    主站蜘蛛池模板: 免费在线一级毛片| 亚洲国产主播精品极品网红| 亚洲国产精品久久| 成人爽a毛片免费| 亚洲爱情岛论坛永久| 国产免费无码AV片在线观看不卡| 曰韩亚洲av人人夜夜澡人人爽| 一本久久A久久免费精品不卡| 亚洲国产成人精品女人久久久 | 久久久亚洲欧洲日产国码aⅴ| 国产永久免费高清在线| 久久久久亚洲AV无码专区首| 99视频有精品视频免费观看| 亚洲精品中文字幕无码AV| 久久久久久免费视频| 亚洲精品无码久久久久秋霞 | 亚洲中文字幕无码中文字在线| 手机看片国产免费永久| 亚洲国产精品热久久| 久久午夜免费视频| 国产亚洲福利一区二区免费看| 亚洲午夜未满十八勿入网站2| 精品四虎免费观看国产高清午夜 | 国产精品免费视频播放器| 污视频网站免费观看| 亚洲国产精品成人精品无码区在线| 亚洲a一级免费视频| 亚洲最大中文字幕无码网站| 免费一级毛片在线观看| 久久国产乱子伦精品免费强| 亚洲中字慕日产2021| 免费国产成人午夜电影| 久久久久免费精品国产| 亚洲高清有码中文字| 久久国产成人精品国产成人亚洲| 久久国产精品一区免费下载| 日本亚洲色大成网站www久久 | 亚洲国产精品免费在线观看| 国产一区二区三区免费看| 一个人看的www免费视频在线观看| 亚洲伊人久久大香线蕉在观|