现在的位置: 首页 > 综合 > 正文

hibernate映射总结详解: 映射多对一单向关联关系

2014年02月16日 ⁄ 综合 ⁄ 共 886字 ⁄ 字号 评论关闭
  

Hibernate解决实体类型映射和值类型映射的方法是Hibernate的精华之一。
Hibernate实体和值类型映射大致分为四种情况:
       映射实体关联关系
     一对多关联关系
        多对一单向关联 (Ⅰ)
      一对多双向关联 (Ⅱ)
       一对多双向自身关联 (Ⅲ)
     一对一关联关系
        按主键映射
        按外键映射
     多对多关联关系
       映射组成关系
       映射继承关系
       映射值类型集合
 
接下来,将一个一个的介绍每种情况的映射方式:
Ⅰ. 映射实体关联关系---  一对多关联关系 ----多对一单向关联映射:
其中,映射实体关系是最常用到的。其他的类型大都可以在建模阶段转化成实体间的关系。
实体关联关系中,多对一单向关联关系和关系数据库中的外键参照关系是最匹配的了。
比如:定单和客户之间就是多对一的单向关联。
Customers表有id,name字段;主键:id
Orders表有 id, customer_id, order_number字段;主键:id,外键:customer_id;
Customers类都是基本类型,映射没有问题。用property元素即可以完成。
Orders类的customer属性是customer类型,和orders表的customer_id相对应。在orders的映射文件中,可以这样映射吗? <property name=“customer” column=“customer_id”> 。
不能。因为customer属性是Customer类型的,而customer_id是整数类型的。类型不匹配。
这种情况,可以使用<many-to-one>元素:
<many-to-one name=“customer” column=“customer_id” class=“mypack.customer”>
<many-to-one>元素建立了customer属性和orders表的外键customer_id之间的映射。
总结:实体多对一单向关联,用<many-to-one>写在many方。

抱歉!评论已关闭.