11.27--一对多关联映射
来源:互联网 发布:gina windows界面设计 编辑:程序博客网 时间:2024/05/19 12:24
一对多关联映射
单向
一对多和多对一映射原理是一样的,都是在多的一端加入一个外键指向一的一端;
区别在于维护的关系不同:
- 多对一维护的关系:多指向一的关系,如果维护了多指向一的关系,那么加载多的时候会把一加载上来;
- 一对多维护的关系:一指向多的关系,如果维护了一指向多的关系,那么加载一的时候会把多加载上来。
classes——》student
table-classes: id , nameclasses.java: id, name, Set < Student > studentsclasses.xml: id , name , < Set name="students" cascade=""> cascade级联操作属性:save-update、delete、all、none。 < key column="classId" /> //classId,谁维护谁加classes < one-to-many class="com.entity.Strudent" />< /Set >
table-student: id, name , classIdstudent.java: id, name, student.xml: id , name,
在一一端维护关系存在缺陷:
因为多的一端student不知道classes的存在(也就是student没有维护与classes的关系),所以在保存student的时候关系字段classesId是为null的,如果将该字段设置为非空,则将无法保存数据另外,因为student不维护关系,而classes维护关系,classes就会发出多余的update语句,保证classes和student有关系,这样加载classes的时候才可以把该classes对应的学生加载上来。
映射双向的目的是,有时候不是因为需求,而是为了让多的一端维护关系
存储,加载
双向
采用一对多双向关联映射的目的主要是为了解决一对多单向的缺陷,而不是需求驱动。
一对多双向关联的映射方式:
- 在一的一端的集合上采用< key>标签,在多的一端加入一个外键
- 在多的一端采用< many-to-one>标签
< key>标签和< many-to-one>标签加入的字段保持一致,否则会产生数据混乱
inverse属性:
inverse属性可以用在一对多和多对多双向关联上,inverse属性默认为false,为false表示本端可以维护关系,如果inverse为true,则本端不能维护关系,会交给另一端维护关系,本端失效
所以,一对多关联映射我们通常在多的一端维护关系,让一的一端失效,故设置为inverse=“true”
inverse和cascade
inverse是控制方向上的反转,只影响存储
cascade是操作上的连锁反应
阅读全文
0 0
- 11.27--一对多关联映射
- 一对多关联映射
- 11. 一对多关联映射
- Hibernate一对多关联映射
- 映射一对多关联关系
- hibernate---->一对多关联映射
- 映射一对多关联关系
- Hibernate一对多关联映射
- hibernate关联映射(一对多)
- 一对多单向关联映射
- hibernate---一对多关联映射
- 【Hibernate】一对多关联映射
- 【Hibernate】一对多关联映射
- 映射一对多关联关系
- Hibernate关联映射--一对多
- Hibernate一对多关联映射
- JPA关联映射 - 一对多映射
- Hibernate关联映射--一对多映射
- Python 练习实例20
- 浅谈2017noip信息奥赛普及组试题
- 最新版 Ubuntu下安装posgtresql
- 17.11.27,web学习第十三天,还有一年,努力吧青年Servlet
- 51Nod-1298 圆与三角形
- 11.27--一对多关联映射
- ImageList存储图像控件
- java_day08
- 对尺取法的一些理解
- c语言的左结合性与右结合性
- nm
- 简记Android源码设计模式——One
- JavaWeb-013-JSP的基本语法
- 数据结构小记