多难兴邦

人这一生,什么都可以丢,但有两样东西决不能丢,那就是: 良心和理想!

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

新一篇: hibernate映射总结详解: 映射一对多双向关联关系 | 旧一篇: hibernate映射详解之: 对象 - 关系映射

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

发表于 @ 2007年09月05日 13:29:00|评论(loading...)|编辑

新一篇: hibernate映射总结详解: 映射一对多双向关联关系 | 旧一篇: hibernate映射详解之: 对象 - 关系映射

评论

#sunyadongwanghbjm 发表于2007-10-23 10:01:13  IP: 124.205.148.*
sdasd
#xsy 发表于2007-12-12 11:23:03  IP: 221.218.210.*
第一次来你的blog,很专业,很精辟,很明了,在这里学到了不少东西,在此非常感谢。
2008-05-20 21:57:51作者回复
内容:呵呵,里面有很多内容,我感觉还有待商榷的地方。希望多多注意,并且很多东西也只是肤浅的东西。
发表评论  


登录
Csdn Blog version 3.1a
Copyright © 东子