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

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

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

    jinfeng_wang

    G-G-S,D-D-U!

    BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
      400 Posts :: 0 Stories :: 296 Comments :: 0 Trackbacks

    Mapping collections of value types (from 《hibernate in action》chapter 6)

     

    這里所舉的例子,都是基于這樣的一個(gè)情景,Item中包含有Images

    <set name="images" lazy="true" table="ITEM_IMAGE">

    <key column="ITEM_ID"/>

    <element type="string" column="FILENAME" not-null="true"/>

    </set>

    這里的<key>定義了外鍵ITEM_ID,<elememt>則聲明了集合的內(nèi)部數(shù)據(jù)元素。<set>定義的集合中不可以有重復(fù)的數(shù)據(jù)。

     

    <idbag name="images" lazy="true" table="ITEM_IMAGE">

    <collection-id type="long" column="ITEM_IMAGE_ID">

    <generator class="sequence"/>

    </collection-id>

    <key column="ITEM_ID"/>

    <element type="string" column="FILENAME" not-null="true"/>

    </idbag>

    ITEM_IMAGE_ID為主鍵,而ITEM_ID則為外鍵,<element>元素不變,這就允許集合中的數(shù)據(jù)重復(fù)。

     

    <list name="images" lazy="true" table="ITEM_IMAGE">

    <key column="ITEM_ID"/>

    <index column="POSITION"/>

    <element type="string" column="FILENAME" not-null="true"/>

    </list>

    這里為ITEM_IMAGE表添加了index,整個(gè)表的主鍵是ITEM_IDPOSITION構(gòu)成的復(fù)合主鍵,它允許集合中的數(shù)據(jù)根據(jù)POSITION進(jìn)行排序。

     

    <map name="images"

    lazy="true"

    table="ITEM_IMAGE"

    sort="natural">

    <key column="ITEM_ID"/>

    <index column="IMAGE_NAME" type="string"/>

    <element type="string" column="FILENAME" not-null="true"/>

    </map>

    這里為ITEM_IMAGE表添加了index,整個(gè)表的主鍵是ITEM_IDPOSITION構(gòu)成的復(fù)合主鍵,它允許集合中的數(shù)據(jù)根據(jù)sort指定的內(nèi)容進(jìn)行排序,這里允許用戶對(duì)sort進(jìn)行定制。

     

    <map name="images"

    lazy="true"

    table="ITEM_IMAGE"

    order-by="IMAGE_NAME asc">

    <key column="ITEM_ID"/>

    <index column="IMAGE_NAME" type="string"/>

    <element type="string" column="FILENAME" not-null="true"/>

    </map>

    這里采用的是orbder-by,注意sortorder-by的區(qū)別。Sort是在內(nèi)存中使用comparator進(jìn)行排序,而order-by則是在數(shù)據(jù)庫(kù)中使用SQL語句進(jìn)行排序。

     

    <set name="images"

    lazy="true"

    table="ITEM_IMAGE"

    order-by="IMAGE_NAME asc">

    <key column="ITEM_ID"/>

    <composite-element class="Image">

    <property name="name" column="IMAGE_NAME" not-null="true"/>

    <property name="filename" column="FILENAME" not-null="true"/>

    <property name="sizeX" column="SIZEX" not-null="true"/>

    <property name="sizeY" column="SIZEY" not-null="true"/>

    </composite-element>

    </set>

    這里定義了一個(gè)新的Image類,它不是實(shí)體類(entity class),而是一個(gè)簡(jiǎn)單的值類型(value type),僅僅是父實(shí)體的一個(gè)component,其生命周期完全由包含其的父實(shí)體 (parent entity) ITEM控制。這里Image類中包含有數(shù)據(jù)ITEM_ID、 IMAGE_NAME、FILENAME、SIZEX、和SIZEY。

     

     

    <set name="images"

    lazy="true"

    table="ITEM_IMAGE"

    order-by="IMAGE_NAME asc">

    <key column="ITEM_ID"/>

    <composite-element class="Image">

    <parent name="item"/>

    <property name="name" column="IMAGE_NAME" not-null="true"/>

    <property name="filename" column="FILENAME" not-null="true"/>

    <property name="sizeX" column="SIZEX" not-null="true"/>

    <property name="sizeY" column="SIZEY" not-null="true"/>

    </composite-element>

    </set>

    前面定義的IMAGE類中,并不包含有對(duì)父實(shí)體ITEM的引用。也就是說,只可以從ITEM中導(dǎo)航到IMAGE中,但是在IMAGE無法得到ITEM。這可以通過<parent>實(shí)現(xiàn)。這樣IMAGE類中就含有一個(gè)數(shù)據(jù)成員item,指向其父實(shí)體。

    但是,它是無法做到真正的雙向?qū)Ш降?。例如:通過SQL查詢直接得到IMAGE后,但是如同普通的值類型一樣,IMAGE對(duì)象的itemnull,你無法從component如此直接得到其父對(duì)象,這必須由通過父-子關(guān)系的entity完成。

    posted on 2005-04-11 14:12 jinfeng_wang 閱讀(759) 評(píng)論(0)  編輯  收藏 所屬分類: hibernate 、ZZ
    主站蜘蛛池模板: 亚洲电影在线免费观看| 免费电视剧在线观看| 亚洲va在线va天堂va手机| 亚洲伊人久久大香线蕉苏妲己| 最近中文字幕mv手机免费高清| 二级毛片免费观看全程| 亚洲自偷自拍另类图片二区| 亚洲成人高清在线| 激情综合亚洲色婷婷五月APP| 亚洲精品一级无码鲁丝片| 亚洲毛片免费视频| 成人A片产无码免费视频在线观看| 亚洲fuli在线观看| 亚洲综合无码一区二区| 亚洲日韩中文字幕日韩在线| 好男人www免费高清视频在线| 少妇性饥渴无码A区免费| 另类图片亚洲校园小说区| 亚洲综合伊人制服丝袜美腿| 亚洲高清国产拍精品26U| 好久久免费视频高清| 人成电影网在线观看免费| 亚洲综合中文字幕无线码| 亚洲高清视频在线播放| 亚洲国产美女精品久久久久∴| 国产乱人免费视频| 美女被免费视频网站a国产| 啦啦啦中文在线观看电视剧免费版| 丁香花在线视频观看免费| 你好老叔电影观看免费| 大妹子影视剧在线观看全集免费| 丁香六月婷婷精品免费观看| 色婷婷精品免费视频| 亚洲第一精品电影网| 亚洲精品视频在线看| 丝袜熟女国偷自产中文字幕亚洲| 亚洲精品tv久久久久| 久久精品国产亚洲网站| 久久亚洲AV成人出白浆无码国产| 亚洲色图黄色小说| 亚洲色大成网站www永久男同|