在多对一和一对多的映射中.如一个部门对应多个人员,既可以看成是多个人员对应一个部门.所以在一对多或多对一映射关系中,没有区别.
以多对一映射文件说明:
多的一方,如
人员持久化类映射文件需加入多对一元素: <many-to-one class="
部门类" colum="
外键" /> //
外键的定义方式,代替<property />定义.
一的一方,如
部门持久化类映射文件.由于为了
体现一一对应的原则(个人理解),需把多的一方映射为一个集合(因为一的一方要把多的一方看成一个整体,所以集合当然就放在一的一方.) , 需加入:
<set name="集合名"/> //集合中name 属性必须.
<key> <colum name="
外键" not-null="true/> </key> //在集合中
指定多的一方的外键元素(集合中
两个子元素的一个),
不代替<property />定义.
<one-to-many class="
人员类" /> //一对多元素(集合中
两个子元素的一个).
</set>
(有外键的那一方,即为多方) (持久化即序列化)
多对多的映射讲解:
多对多的映射文件中,由于JAVA类无法表示多对多的映射,所以把他们分解成两个多对一/一对多,在中间引入一个JAVA BEAN 对象进行关联.这个中间BEAN除了主键用<id />定义,其他属性由于均为外键,所以采用外键定义方式---<many-to-one />.
以上讲解有问题.举的例子是一对多的.多对一比一对多简单些.
posted on 2008-03-17 10:50
紫蝶∏飛揚↗ 阅读(952)
评论(0) 编辑 收藏 所属分类:
Hibernate