Hibernate一对多单向关联和双向关联映射方法及其优缺点
来源:互联网 发布:如何经营淘宝店铺 编辑:程序博客网 时间:2024/05/16 06:35
Hibernate一对多单向关联和双向关联映射方法及其优缺点
本文由arthinking发表于3年前 |J2EE |暂无评论 | 被围观 5,750 views+
一对多关联映射和多对一关联映射实现的基本原理都是一样的,既是在多的一端加入一个外键指向一的一端外键,而主要的区别就是维护端不同。
它们的区别在于维护的关系不同:
一对多关联映射是指在加载一的一端数据的同时加载多的一端的数据
多对一关联映射是指在加载多的一端数据的同时加载一的一端的数据
而单向一对多关联映射是在一的一端维护关系的,具有以下的缺点:
必须先保存多的一端后才可以保存一的一端,所以在保存多的一端时多的一端不知道一的一端是否存在相应的数据,所以只能将维护的关系字段设置为null,如果为非空则无法保存。因为是一的一端维护关系,所以在保存一的一端时,会发出多余的update语句维护多的一端的外键关系。
下面举例说明配置一对多的单向关联和双向关联的映射方法:
涉及到的一端和多端的类结构参考这篇文章:Hibernate一对多关联映射的配置及其级联删除问题
一对多双向关联映射的配置(可参考上面提供的文章):
在一的一端的集合上采用<key>标签进行映射:
<set name="quesion" inverse="true" cascade="delete"><key column="question_type_name"/><one-to-many class="Question"/></set>
在多的一端加入一个外键private QuestionType questionType; 采用<many-to-one>标签进行映射:
<many-to-one name="questionType" column="question_type_name"/>
一对多双向关联映射一般让多的一端维护关系,所以需要设置inverse属性为true,表示本段不维护关系,而交给另一端维护,既是多的一端。同时也可以使用设置cascade进行级联操作,如上面一篇文章的级联删除设置:cascade=”delete”,表示删除一的一端的同时删除关联的多的一端的所有数据。
一对多单向关联映射:
一对多单向关联映射 多的一端Question不需要加入外键private QuestionType questionType; 只需要在一的一端的集合上采用<key>标签进行映射,映射代码如下:
<set name="quesion" inverse="true" cascade="delete"><key column="question_type_name"/><one-to-many class="Question"/></set>
0 0
- Hibernate一对多单向关联和双向关联映射方法及其优缺点
- Hibernate一对多单向关联和双向关联映射方法及其优缺点
- Hibernate一对多单向关联和双向关联映射方法及其优缺点
- Hibernate一对多单向关联和双向关联映射方法及其优缺点
- Hibernate一对多单向关联和双向关联映射方法及其优缺点
- Hibernate xml一对多关联映射 单向+双向
- hibernate映射关系 一对多、多对一单向关联 一对多双向关联
- hibernate中----一对多单向关联,一对多双向关联
- Hibernate关联关系映射(单向一对多、单向多对一、双向一对多)
- hibernate一对多单向、双向关联
- Hibernate的一对多关联关系(单向和双向)
- Hibernate映射详解(二)--多对一,一对多单向,一对多双向关联映射
- Hibernate映射详解(二)--多对一,一对多单向,一对多双向关联映射
- Hibernate映射详解(二)--多对一,一对多单向,一对多双向关联映射
- Hibernate映射详解(二)--多对一,一对多单向,一对多双向关联映射
- Hibernate映射详解(二)--多对一,一对多单向,一对多双向关联映射
- Hibernate多对多单向关联和双向关联映射的方法
- Hibernate一对多单向关联映射
- javascript 一种继承的方式,摘自JavaScript语言精粹
- mac 下 svn working copy locked
- 画图解释SQL联合语句
- linux的查找匹配方式
- 小内存大数据排序
- Hibernate一对多单向关联和双向关联映射方法及其优缺点
- SectionIndexer 的使用(联系人分类索引)
- 谈判的技巧(一)
- Java编程思想——第九章
- C++中的return, exit 与 abort
- 06-3板木通风柜
- Sqrt(x)
- Eclipse如何切换工作空间
- 动态代理proxy