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

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

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

    paulwong

    HIBERNATE中的對象設(shè)計(jì)

    zRoom與User存在一對多的關(guān)系,如果要在取得Room的同時(shí)取得User,則在Room中加入Set,List或Map類型的集合成員,Set中的元素不可以重復(fù),List中的元素可以重復(fù),Map是鍵值對類型的集合。

    在HIBERNATE的配置文件中象這樣配置:


    <set name="users" table="user" cascade="all"  inverse="true"  lazy="extra">
                
    <key column="room_id"/>
                
    <one-to-many class="paul.com.User"/>
    </set>

    1. 指定users私有成員的類型為SET:set name="users"
    2. 指定集合中的對象類型為User:<one-to-many class="paul.com.User"/>
    3. 指定User對應(yīng)的表:table="user"
    4. 指定外鍵:<key column="room_id"/>
    5. 指定如果同時(shí)新增、修改、刪除關(guān)聯(lián)的Room和User對象時(shí),是否需要HIBERNATE執(zhí)行兩次操作:cascade="all"
    6. 指定 lazy="extra"時(shí),則集合中的元素不會(huì)被一起取出,而且要讀SIZE時(shí),只會(huì)發(fā)送一條COUNT的SQL語句至后臺(tái)
    7. 指定 inverse="true"時(shí),當(dāng)保存一的對象時(shí),對應(yīng)的多的對象不會(huì)同時(shí)被保存。

    如果要在取得User對象的同時(shí)取得Room對象,則在User中加入私有成員Room,在HIBERNATE的配置文件中如下配置:


    <many-to-one name="room" 
                 column
    ="room_id"
                 class
    ="paul.com.Room"
                 cascade
    ="all"
                 outer-join
    ="true"/> 

    1. 指定名稱為room成員的類型:many-to-one name="room"
    2. 指定room對應(yīng)的類名:class="paul.com.Room"
    3. 指定外鍵:column="room_id"
    4. 指定如果同時(shí)新增、修改、刪除關(guān)聯(lián)的Room和User對象時(shí),是否需要HIBERNATE執(zhí)行兩次操作:cascade="all"
    5. 指定關(guān)聯(lián)兩個(gè)表時(shí)的查詢是否使用left-outer關(guān)鍵字:outer-join="true"
    User和Server是多對多的關(guān)系,如要在取得User對象的同時(shí)取得Server,可以User中加入Set私有成員,在HIBERNATE中如下配置:


    <set name="servers" 
                 table
    ="user_server" 
                 cascade
    ="save-update"> 
     
                
    <key column="user_id"/> 
                
    <many-to-many class="paul.com.Server"
                              column
    ="server_id"/> 
    </set>

    1. 指定名稱為servers的私有成員的類型為SET:set name="servers"
    2. 指定中間表為:table="user_server"
    3. 指定User表與中間表關(guān)聯(lián)的外鍵:key column="user_id"
    4. 指定集合中的對象類型為:many-to-many class="paul.com.Server"
    5. 指定中間表與Server關(guān)聯(lián)的外鍵:column="server_id"
    6. 指定如果同時(shí)新增、修改、刪除關(guān)聯(lián)的Room和User對象時(shí),是否需要HIBERNATE執(zhí)行兩次操作:cascade="save-update"

    如此配置后,將大量減少SQL語句的撰寫。

    posted on 2009-05-01 11:57 paulwong 閱讀(440) 評論(0)  編輯  收藏 所屬分類: HIBERNATE

    主站蜘蛛池模板: 亚洲成a人片在线不卡一二三区| 亚洲人成网站18禁止一区| 无码囯产精品一区二区免费| 成人嫩草影院免费观看| 一级免费黄色大片| 免费很黄无遮挡的视频毛片| 色屁屁在线观看视频免费| 黄页免费视频播放在线播放| 香蕉97碰碰视频免费| 日本高清免费中文在线看| 成人午夜免费视频| 水蜜桃视频在线观看免费播放高清| 在线免费观看h片| 无码一区二区三区免费| 19禁啪啪无遮挡免费网站| 国产成人yy免费视频| 天堂在线免费观看中文版| 日本a级片免费看| 亚洲伊人成无码综合网| 亚洲AV中文无码乱人伦下载 | 四虎精品成人免费视频| 国产乱妇高清无乱码免费| 三根一起会坏掉的好痛免费三级全黄的视频在线观看 | 131美女爱做免费毛片| 16女性下面无遮挡免费| 久久WWW免费人成人片| 国产精品免费视频一区| 亚洲成人一区二区| 亚洲线精品一区二区三区影音先锋| 亚洲国产精品无码久久一区二区| 91亚洲精品视频| 亚洲色欲色欲www| 黄人成a动漫片免费网站| www免费黄色网| 无码人妻精品中文字幕免费| 中文字幕无码播放免费| 国产伦精品一区二区三区免费迷| 国产a v无码专区亚洲av| 亚洲自偷精品视频自拍| 亚洲精品V天堂中文字幕| 两个人www免费高清视频|