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

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

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

    kapok

    垃圾桶,嘿嘿,我藏的這么深你們還能找到啊,真牛!

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      455 隨筆 :: 0 文章 :: 76 評論 :: 0 Trackbacks

    http://www.tkk7.com/jinfeng_wang/archive/2005/04/11/3132.html
    Mapping collections of value types (from 《hibernate in action》chapter 6)

     

    這里所舉的例子,都是基于這樣的一個情景,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>則聲明了集合的內部數據元素。<set>定義的集合中不可以有重復的數據。

     

    <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>元素不變,這就允許集合中的數據重復。

     

    <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,整個表的主鍵是ITEM_IDPOSITION構成的復合主鍵,它允許集合中的數據根據POSITION進行排序。

     

    <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,整個表的主鍵是ITEM_IDPOSITION構成的復合主鍵,它允許集合中的數據根據sort指定的內容進行排序,這里允許用戶對sort進行定制。

     

    <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的區別。Sort是在內存中使用comparator進行排序,而order-by則是在數據庫中使用SQL語句進行排序。

     

    <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>

    這里定義了一個新的Image類,它不是實體類(entity class),而是一個簡單的值類型(value type),僅僅是父實體的一個component,其生命周期完全由包含其的父實體 (parent entity) ITEM控制。這里Image類中包含有數據ITEM_ID IMAGE_NAMEFILENAMESIZEX、和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類中,并不包含有對父實體ITEM的引用。也就是說,只可以從ITEM中導航到IMAGE中,但是在IMAGE無法得到ITEM。這可以通過<parent>實現。這樣IMAGE類中就含有一個數據成員item,指向其父實體。

    但是,它是無法做到真正的雙向導航的。例如:通過SQL查詢直接得到IMAGE后,但是如同普通的值類型一樣,IMAGE對象的itemnull,你無法從component如此直接得到其父對象,這必須由通過父-子關系的entity完成。

    posted on 2005-04-11 17:26 笨笨 閱讀(265) 評論(0)  編輯  收藏 所屬分類: HibernateAndSpringALL
    主站蜘蛛池模板: 亚洲国产精品无码久久一线| 国产一级淫片免费播放电影 | 在线观看免费a∨网站| 亚洲第一区视频在线观看| 免费无码一区二区三区| 亚洲五月激情综合图片区| 最近中文字幕免费完整| 亚洲一卡2卡4卡5卡6卡残暴在线| 午夜宅男在线永久免费观看网| 国产亚洲精品VA片在线播放| 免费高清在线爱做视频| 青娱乐在线免费观看视频| 亚洲精品专区在线观看| 国产免费网站看v片在线| 亚洲网站在线免费观看| 免费的涩涩视频在线播放| 日本一区二区三区在线视频观看免费 | 全部免费毛片在线| 久久久WWW免费人成精品| 婷婷久久久亚洲欧洲日产国码AV| 麻豆高清免费国产一区| 亚洲国产精品无码久久| 久久亚洲国产成人影院网站| 在线观看免费播放av片| 亚洲1区1区3区4区产品乱码芒果| 国产自产拍精品视频免费看| 成人免费777777被爆出| 亚洲剧情在线观看| 又粗又大又猛又爽免费视频| 国产精品免费一区二区三区四区| 亚洲午夜久久久精品电影院| 四虎国产精品免费久久影院| 日韩内射激情视频在线播放免费| 亚洲色大成网站www永久男同| 亚洲精品国产V片在线观看| 美女内射无套日韩免费播放| 亚洲精品无码久久久久秋霞 | 暖暖日本免费在线视频| 99久久精品毛片免费播放| 亚洲AV无码无限在线观看不卡| 久久久无码精品亚洲日韩软件|