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

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

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

    隨筆 - 3, 文章 - 152, 評論 - 17, 引用 - 0
    數(shù)據(jù)加載中……

    [轉(zhuǎn)]hibernate:one-to-one的學(xué)習(xí)小經(jīng)驗(yàn)

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

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

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

          為了在Address中使用User中的主鍵ID值,我們需要設(shè)置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.   在設(shè)置屬性ID的時(shí)候必須注意字段的長度,如筆者這樣使用oracle的sequence來生成ID,其長度有14位之長,則應(yīng)選擇hibernate類型long,對應(yīng)的實(shí)體中應(yīng)選擇Long,這樣不會(huì)出現(xiàn)溢出的情況。


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


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

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

    posted on 2005-08-19 13:45 閱讀(826) 評論(0)  編輯  收藏 所屬分類: Hibernate

    主站蜘蛛池模板: 又粗又长又爽又长黄免费视频| 久久久久久亚洲精品影院| 黄色网址免费在线| 国产成人免费a在线视频色戒| 亚洲香蕉久久一区二区| 99久久99久久精品免费看蜜桃| 亚洲成人午夜电影| 亚洲精品动漫免费二区| 亚洲综合国产成人丁香五月激情 | 一边摸一边爽一边叫床免费视频| 在线日韩av永久免费观看| 最新亚洲人成无码网www电影| 全黄性性激高免费视频| 偷自拍亚洲视频在线观看| 亚洲精品国产V片在线观看 | 久久国产乱子伦免费精品| 亚洲成年人免费网站| 人妻视频一区二区三区免费| 亚洲.国产.欧美一区二区三区| mm1313亚洲精品国产| 中文无码日韩欧免费视频| 亚洲精品视频在线| 中文字幕av无码无卡免费| 美女露隐私全部免费直播| 亚洲自偷自偷在线制服| 一级毛片不卡片免费观看| 美女视频黄免费亚洲| 久久久久亚洲精品男人的天堂| 日本免费在线观看| 亚洲国产成人无码AV在线影院 | 久久久久亚洲av无码尤物| 台湾一级毛片永久免费| 免费无码专区毛片高潮喷水| 亚洲AV无码国产精品色午友在线 | 亚洲av不卡一区二区三区| 九九精品免费视频| 成人精品综合免费视频| 亚洲黄色片免费看| 免费一级毛片免费播放| 美丽的姑娘免费观看在线播放 | 国产免费拔擦拔擦8X高清在线人|