hibernate几种映射关系(模板参考)

10,多对一,一对多和多对多映射模板

       10.1,多对一和一对多模板:

       Department与User是一对多的关系

在com.wzh.oa.domain / Department.hbm.xml中

<!-- users属性,描述Department与User的一对多关系 -->

                   <set name="users" table="oa_user">

                          <key column="departmentId" />

                          <one-to-many class="User"/>

                   </set>

       理解:查询对应的所有User对象。从oa_user表中查,依据departmentId字段查,查询

的结果类型是User

 

在com.wzh.oa.domain / User.hbm.xml中

              <!-- department属性,描述User与Department的多对一关系 -->

            <many-to-one name="department" column="departmentId"  class="Department" />

       理解:department属性对应表中的departmentId字段,该字段指向Department

      

10.2,多对多模板

       User与Role是多对多关系 (使用中间表

在com.wzh.oa.domain / User.hbm.xml 中:

<!-- roles属性,描述User与Role的多对多关系-->

                     <set name="roles" table="oa_user_role">

                            <key column="userId" />

                            <many-to-many class="Role" column="roleId" />

                     </set>

在com.wzh.oa.domain / Role.hbm.xml中:

<!-- users属性,描述Role与User的多对多关系

     当出现多对多的关系时,需要设置inverse,来确定哪一方来维护表的关联关系

-->

                   <set name="users" table="oa_user_role" inverse="false">

                          <key column="roleId" />

                          <many-to-many class="User" column="userId" />

                   </set>

 

       10.3,一对一映射

              基于外键的一对一映射:

                            使用many-to-one,需定义外键,需设置unique属性为true

在con.wzh.oa.domain / Topic.hbm.xml中:

 

<!-- lastReply属性,描述Topic与Reply的一对一关系  -->

<many-to-one name="lastReply" column="lastReplyId" class="Reply" unique="true"  />

 

              基于主键的一对一映射:还没使用过

                            使用one-to-one,

posted @ 2013-04-06 23:35  -1  阅读(910)  评论(0编辑  收藏  举报