<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

    搜索

    •  

    積分與排名

    • 積分 - 825427
    • 排名 - 49

    最新評論

    閱讀排行榜

    評論排行榜

      一對一關(guān)系在實(shí)際生活中是比較常見的,如果學(xué)生與身份證的關(guān)系,學(xué)生與檔案的關(guān)系等等。
      一對一關(guān)系在Hibernate中的實(shí)現(xiàn)有兩種方式,分別是主鍵關(guān)聯(lián)外鍵關(guān)聯(lián)

    以主鍵關(guān)聯(lián)

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

    Certificate.hbm.xml
    ...
    <hibernate-mapping>
     <class name="model.Certificate" table="certificate" lazy="true">
      <id name="id">
      <!--外鍵生成機(jī)制,引用stu對象的主鍵作為certificate數(shù)據(jù)表的主鍵和外鍵-->
       <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>

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


    以外鍵關(guān)聯(lián)

      以外鍵關(guān)聯(lián)的重點(diǎn)是:兩個(gè)實(shí)體各自有不同的主鍵,但其中一個(gè)實(shí)體有一個(gè)外鍵引用
    了另一個(gè)表的主鍵。

    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"
      /><!--映射對應(yīng)的身份證對象-->
     </class>
    </hibernate-mapping>
    可以看到Student.hbm.xml和以主鍵關(guān)聯(lián)時(shí)的代碼是一樣的,并沒有改變。

    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" <!--唯一的多對一,其實(shí)也就變成了一對一關(guān)系-->
        column="stu_id" 
      />

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



    posted on 2007-12-29 14:00 Ke 閱讀(1763) 評論(0)  編輯  收藏 所屬分類: hibernate
    主站蜘蛛池模板: 久久久久久久久久国产精品免费 | aa级一级天堂片免费观看| 日本特黄特色AAA大片免费| 亚洲成a人片在线网站| 亚洲熟妇av一区二区三区 | 美女羞羞视频免费网站| 亚洲不卡在线观看| 亚洲AV无码久久精品色欲| 亚洲国产综合精品一区在线播放| 免费av欧美国产在钱| 国产成人一区二区三区视频免费| 国产日韩久久免费影院| 久久亚洲精品无码网站| 国产 亚洲 中文在线 字幕| 亚洲美女视频一区| 亚洲av午夜福利精品一区人妖| 超清首页国产亚洲丝袜| 亚洲国产精品激情在线观看| 免费无码又爽又刺激高潮| 动漫黄网站免费永久在线观看| 91大神免费观看| 野花香高清视频在线观看免费| 国产精品九九久久免费视频 | 日本高清免费观看| 国产啪精品视频网站免费尤物| 成人精品综合免费视频| 黄色一级视频免费观看| 亚洲成AV人片在WWW| 亚洲AV无码专区在线电影成人 | 久久精品免费电影| 最近免费mv在线观看动漫| a视频在线观看免费| 中文字幕一区二区免费| 国产线视频精品免费观看视频| 三级黄色免费观看| 国产色爽免费无码视频| 国产成人精品免费久久久久| 无码少妇精品一区二区免费动态| 免费人成网站在线观看不卡| 无码少妇精品一区二区免费动态| 中文字幕在线免费|