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

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

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

    hibernate:one-to-one的學習小經(jīng)驗

          one-to-one在hibernate中可以用來作為兩張表之間的主鍵關(guān)聯(lián),這也是hibernate中主鍵關(guān)聯(lián)的一種用法,這樣在一張表中的ID,在生成另外一張表的同時回自動插入到相應的ID字段中去,相應的XML文件設置比較簡單,舉例如下:

        <!-- 建立一對一的到Address的映射,這個是寫在User的XML配置文件中的 -->
        <!-- 相應的User bean(PO)中也要添加屬性 com.xx.Address  address-->
        <one-to-one name="address" cascade="all" class="com.xx.Address"/>
       
       <!-- cascade的屬性設置不再重復了,可以查看hibernate文檔 -->

        <!-- 建立一對一的到User的映射,這個是寫在Address的XML配置文件中的 -->
        <!-- 相應的Address bean(PO)中也要添加屬性 com.xx.User user--> -->
        <one-to-one name="user" class="com.xx.User" constrained="true"/>

          為了在Address中使用User中的主鍵ID值,我們需要設置Address中的主鍵生成規(guī)則,如下所示,采用foreign關(guān)鍵字

       <id column="ID" name="id" type="long" unsaved-value="0">
          <generator class="foreign">
            <param name="property">user</param> 
          </generator>
       </id>


          這里需要注意的是property的屬性值必須與上面到User的映射所填寫的name屬性值一致,這樣就完成了one-to-one的映射關(guān)系。

    上面的過程都很簡單,下面我來說說這里需要注意的地方:

      1.   在設置屬性ID的時候必須注意字段的長度,如筆者這樣使用oracle的sequence來生成ID,其長度有14位之長,則應選擇hibernate類型long,對應的實體中應選擇Long,這樣不會出現(xiàn)溢出的情況。


      2.   在測試的時候必須要注意這兩張表之間因為已經(jīng)存在了一對一的關(guān)系,所以我們不能只寫
             user.setAddress(address);
             而忽略了
             address.setUser(user);
             這樣在做插入的時候會報出attempted to assign id from null one-to-one property: address的錯誤,這一點初學者會經(jīng)常犯,筆者也是其中之一。


     3.   如果不寫cascade="all"或者寫成cascade="none"的話,即使你寫了
             user.setAddress(address);
             address.setUser(user);
           也不會發(fā)生任何事情,只有user會被存儲。

    以上是一些筆者經(jīng)歷的小經(jīng)驗,如果有不對的地方歡迎指正。

    posted on 2005-03-23 17:27 Find it, try it, experience it 閱讀(10000) 評論(9)  編輯  收藏

    評論

    # re: hibernate:one-to-one的學習小經(jīng)驗 2005-03-30 09:34 baijsp

    您說的最上面的那兩個映射文件
    <one-to-one name="address" cascade="all" class="com.xx.Address"/>

    <one-to-one name="user" class="com.xx.User" constrained="true"/>
    分別對應的是那個映射文件呀?第一個是address的嗎?還是user的。講的不太明白。我試過了你的這個例子,沒有實現(xiàn)這種關(guān)系的映射  回復  更多評論   

    # re: hibernate:one-to-one的學習小經(jīng)驗 2005-03-30 12:20 一個人的日子,我獨來獨往

    我已經(jīng)在例子中用紅色的標記進行了標記,希望對你能有所幫助,另外我的QQ 9809973,還有什么問題聯(lián)系我  回復  更多評論   

    # re: hibernate:one-to-one的學習小經(jīng)驗 2005-04-13 08:47 4431

    你是一個人嗎,需要人和你一起學習嗎  回復  更多評論   

    # re: hibernate:one-to-one的學習小經(jīng)驗 2005-04-13 15:21 一個人的日子,我獨來獨往

    qq:9809973  回復  更多評論   

    # re: hibernate:one-to-one的學習小經(jīng)驗 2005-05-13 16:24 Jun Tsai

    能不能把你的保存User時候的代碼拿來看看?
    謝謝  回復  更多評論   

    # re: hibernate:one-to-one的學習小經(jīng)驗 2008-05-09 18:29 xx

    級聯(lián)刪除會嗎?  回復  更多評論   

    # re: hibernate:one-to-one的學習小經(jīng)驗 2008-08-26 17:34 z60010232

    受用了,謝謝  回復  更多評論   

    # re: hibernate:one-to-one的學習小經(jīng)驗[未登錄] 2009-05-10 09:15

    太強了,非常感謝。我看了上面的講述。問題解決了。謝謝  回復  更多評論   

    # re: hibernate:one-to-one的學習小經(jīng)驗 2009-05-15 11:28 jj

    不知道one-to-many能不能自動存儲  回復  更多評論   


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


    網(wǎng)站導航:
     
    <2005年3月>
    272812345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    導航

    統(tǒng)計

    公告

    If there is any question you have, please don't hesitate, let me know ASAP, you can find me at kenees@gmail.com or QQ: 9808873, hope to make friends with you ;)

    常用鏈接

    留言簿(1)

    隨筆檔案

    文章檔案

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 99麻豆久久久国产精品免费| 国产免费av片在线播放 | 18级成人毛片免费观看| 小说专区亚洲春色校园| 亚洲另类自拍丝袜第1页| 亚洲阿v天堂在线| 亚洲成a人片在线播放| 最近中文字幕mv免费高清视频7| 久久精品视频免费看| www成人免费观看网站| 国产精品亚洲专区一区| 国产精品亚洲四区在线观看| 亚洲视频一区调教| 亚洲精品无码专区在线在线播放| 国产午夜影视大全免费观看| 成年丰满熟妇午夜免费视频| 国产桃色在线成免费视频| 18禁美女黄网站色大片免费观看| 久久久久久AV无码免费网站下载| 久久免费国产精品| 2022国内精品免费福利视频| 国产精品亚洲二区在线| 亚洲男人的天堂网站| 亚洲综合av一区二区三区| 国产.亚洲.欧洲在线| 亚洲国产成人91精品| 亚洲综合在线成人一区| 亚洲色欲色欲综合网站| 精品亚洲成a人片在线观看少妇| 亚洲精品无码久久千人斩| 亚洲中文字幕不卡无码| 国产亚洲精品福利在线无卡一 | 国产亚洲综合精品一区二区三区| 亚洲色偷偷综合亚洲AV伊人蜜桃| 国产成人精品亚洲日本在线| 狠狠色香婷婷久久亚洲精品| 亚洲人成77777在线观看网| 亚洲色成人网站WWW永久四虎| 亚洲乱色伦图片区小说 | 日韩免费视频观看| 国产男女猛烈无遮档免费视频网站 |