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,

转载于:https://www.cnblogs.com/wzhBlog/archive/2013/04/06/3003213.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值