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

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

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

    寫程序,做產(chǎn)品,過(guò)日子

    成功其實(shí)很簡(jiǎn)單,就是強(qiáng)迫自己堅(jiān)持下去

    BlogJava 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
      69 Posts :: 1 Stories :: 92 Comments :: 0 Trackbacks

    Collection mapping table

    HBM Element Java Interface Java Implementation
    <set> Set HashSet
    <set> with order SortedSet TreeSet
    <list> List ArrayList
    <bag>, <idbag> Collection ArrayList
    <map> Map HashMap
    <map> with order SortedMap TreeMap
    <array>, <primitive-array> N/A array

     

    Sample Tables

    CREATE TABLE `core_sample_company` (
      `companyId` decimal(18,0) NOT NULL,
      `companyName` varchar(128) NOT NULL,
      `description` varchar(1024) default NULL,
      PRIMARY KEY  (`companyId`)
    );

    CREATE TABLE `core_sample_role` (
      `roleId` decimal(18,0) NOT NULL,
      `roleName` varchar(128) NOT NULL,
      `companyId` decimal(18,0) NOT NULL,
      `description` varchar(1024) default NULL,
      PRIMARY KEY  (`roleId`)
    );

    CREATE TABLE `core_sample_user` (
      `userId` decimal(18,0) NOT NULL,
      `userName` varchar(128) NOT NULL,
      `companyId` decimal(18,0) NOT NULL,
      `defaultRoleId` decimal(18,0) default NULL,
      `description` varchar(1024) default NULL,
      PRIMARY KEY  (`userId`)
    );

    CREATE TABLE `core_sample_user_role` (
      `userId` decimal(18,0) NOT NULL,
      `roleId` decimal(18,0) NOT NULL,
      `pripority` int(11) NOT NULL,
      PRIMARY KEY  (`userId`,`roleId`)
    );

    HBM defintion

    The definiton of <set>, <bag>, <list> is similar.

    Defines a collection whose element type is simple data type.

    <class name="SampleCompany" table="core_sample_company">

            <bag name="roleNames" table="core_sample_role" lazy="false" >
                <key column="companyId"/>
                <element column="roleName" type="string"/>
            </bag>

    </class>

    Query HQL: select c.id, c.name, r from SampleCompany c left join c.roleNames r

    Defines a collection whose element type is another mapped java class

    <class name="SampleCompany" table="core_sample_company">   

       <bag name="roles" cascade="none">
                <key column="companyId"/>
                <one-to-many class="SampleRole" not-found="ignore"/>
            </bag>

    </class>

    Query HQL: select c.id, c.name, r.name from SampleCompany c left join c.role r

    Pay attention that key column is a foreign column of SampleRole table.

    Defines a list with list-index

    <list> is not a popular element. It request a index column in table. The index column is the index of java List, it has to be a sequence starts from 0.

    <class name="SampleUser" table="core_sample_user">

         <list name="roles" table="core_sample_user_role" cascade="all" lazy="false" >
                <key><column name="userId" sql-type="integer"/></key>
                <index column="priority"></index>
                <many-to-many class="SampleRole">
                    <column name="roleId"></column>
                </many-to-many>
            </list>

    </class>

    The benifit of <list> is it alwasy sorts list by index column. However, It is hard to resort the list. I tried remove a role from role list and add it to another poisition. When save the role list, an exception throwed:

    java.sql.BatchUpdateException: Duplicate entry 'user001-role003 for key 1

    This should be a hibernate bug.

    Defines a bag with relationship table

    <class name="SampleRole" table="core_sample_role">

          <bag name="users" table="core_sample_user_role" cascade="none" lazy="false">
                <key><column name="roleId" sql-type="integer"/></key>
                <many-to-many class="SampleUser">
                    <column name="userId"></column>
                </many-to-many>
            </bag>

    </class>

    • Key column is foreign column from relationship table to current table(SampleRole>
    • many-to-many sub column is foreign column from relationship table to target table (SampleUser)
    posted on 2007-10-24 11:09 Welkin Hu 閱讀(711) 評(píng)論(0)  編輯  收藏 所屬分類: Java
    主站蜘蛛池模板: 久久夜色精品国产噜噜亚洲AV| 在线观看免费成人| 无码国模国产在线观看免费| 大桥未久亚洲无av码在线| 亚洲一区二区高清| 久久精品电影免费动漫| 亚洲女女女同性video| 亚洲熟女少妇一区二区| 亚洲最大在线视频| 国产美女a做受大片免费| caoporn国产精品免费| 色妞www精品视频免费看| 亚洲VA中文字幕无码一二三区 | 亚洲视频在线观看免费视频| 久久夜色精品国产亚洲| 9i9精品国产免费久久| 激情内射亚洲一区二区三区爱妻| 免费看男女下面日出水来| 亚洲国产成人无码av在线播放| 国产成人精品免费视| 亚洲国产模特在线播放| 亚洲性日韩精品国产一区二区| 人妻免费久久久久久久了| 亚洲天堂一区在线| 久99精品视频在线观看婷亚洲片国产一区一级在线| 16女性下面无遮挡免费| 黄 色一级 成 人网站免费| 亚洲欧美日韩一区二区三区 | 自拍偷自拍亚洲精品被多人伦好爽| 2022国内精品免费福利视频| 国产亚洲国产bv网站在线| 亚洲国产精品无码av| 在线a亚洲v天堂网2018| 拨牐拨牐x8免费| 成人午夜影视全部免费看| 亚洲视频无码高清在线| 国产高清在线精品免费软件| 成年人网站免费视频| 免费91麻豆精品国产自产在线观看| 亚洲另类图片另类电影| 亚洲VA中文字幕无码一二三区|