hibernate中的关联映射图解 ---- 一对多

来源:互联网 发布:砂浆稠度试验数据 编辑:程序博客网 时间:2024/06/07 15:53


        hibernate中的关联映射图解 ---- 一对多

           

一对多关联映射利用了多对一关联映射原理:

多对一关联映射:在多的一端加入一个外键指向一的一端,它维护的关系是多指向一。

一对多关联映射:在多的一端加入一个外键指向一的一端,它维护的关系是一指向多。

总结:由上可以看出,一对多和多对一的映射策略是一样的,只是站的角度不同,维护关系方不同罢了。

 

1. 单向

java文件:

   

hbm.xml文件:

测试代码:

保存

加载

 

2. 双向

相对于上面的单向,只需要修改Student端

java文件:

hbm.xml文件:

注意:在一对多的双向关联关系映射中,我们一般会将关联关系维护权交由多的一方来维护,所以我们需要在一的一方加入关系翻转的属性,如下

 

总结:

一对多双向关联映射:

     1. 在一的一端的集合上使用<key>,在对方表中加入一个外键指向一的一端。

     2. 在多的一端采用<many-to-one>

注意:<key>标签指定的外键字段必须和<many-to-one>指定的外键字段一致,否则引用字段会出错,如果在一的一端维护一对多关联关系,hibernate会发出多于的update语句,所以我们一般在多的一端来维护关联关系。

inverse属性:

        inverse主要用在一对多和多对多双向关联关系上,inverse可以被设置到集合标签<set>上,默认inverse为false,所以我们可以从一的一端和多的一端来维护关联关系,如果设置inverse为true,则我们只能从多的一端来维护关联关系,注意:inverse属性只影响数据的存储,也就是持久化,加载没有影响。

inverse和casccade

       1. inverse是关联关系的控制方向。

       2. cascade是操作上的连锁反应。

0 0
原创粉丝点击