一对多单向映射(八)
来源:互联网 发布:java p2p 合肥学院 编辑:程序博客网 时间:2024/06/06 19:07
一对多单向关联映射
在讲解一对多单向关联之前,按照我们的惯例首先看一下其相应的类结构图和代码。具体如下:
- public class Classes {
- private int id;
- private String name;
- private Set students;
- public int getId() {
- return id;
- }
- public void setId(int id) {
- this.id = id;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public Set getStudents() {
- return students;
- }
- public void setStudents(Set students) {
- this.students = students;
- }
- }
- public class Student {
- private int id;
- private String name;
- public int getId() {
- return id;
- }
- public void setId(int id) {
- this.id = id;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- }
public class Classes {private int id;private String name;private Set students;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Set getStudents() {return students;}public void setStudents(Set students) {this.students = students;}}public class Student {private int id;private String name;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}}
对比一对多关联映射和我们之前讲的多对一关联映射,可以发现两种映射原理是一致的,都是在多的一端加入一个外键,指向一的一端。它们的区别在于维护的关系不同,多对一维护的是多指向一的关系,有了此关系,在加载多的时候可以将一加载上来,一对多维护的是一指向多的关系,有了此关系,在加载一的时候可以将多加载上来。
为了更好说明上述的结论,我们再看一下一对多关联映射的表结构和相应的Hibernate映射配置。具体如下:
- <class name="com.zs.hibernate.Classes" table="t_classes">
- <id name="id">
- <generator class="native"/>
- </id>
- <property name="name"/>
- <set name="students">
- <key column="classesid"/>
- <one-to-many class="com.zs.hibernate.Student"/>
- </set>
- </class>
- <class name="com.zs.hibernate.Student" table="t_student">
- <id name="id">
- <generator class="native"/>
- </id>
- <property name="name"/>
- </class>
<class name="com.zs.hibernate.Classes" table="t_classes"><id name="id"><generator class="native"/></id><property name="name"/><set name="students"> <key column="classesid"/><one-to-many class="com.zs.hibernate.Student"/></set></class><class name="com.zs.hibernate.Student" table="t_student"><id name="id"><generator class="native"/></id><property name="name"/></class>
通过上面表中数据和我们之前关于多对一(参考Hibernate从入门到精通(七)多对一单向关联映射)的对比,我们就可以清晰的看出,在一对多中,仅仅添加了一个<set/>标签,将多对一中的一改为多而已,如果将集合看成一个整体,则两者实际上就没有区别了。
一对多单向关联映射缺陷
到此为止,关于一对多单向关联基本,但是细心的读者可能发现了在一对多中的一的一端维护关系是有缺陷的。例如:在保存Student的时候关系字段classesid为null,则将无法保存数据等等。这些问题如何解决,这就需要引出我们下次讲解的一对多双向关联映射了。
- 一对多单向映射(八)
- Hibernate从入门到精通(八)一对多单向关联映射
- Hibernate从入门到精通(八)一对多单向关联映射
- 一对多单向关联映射
- Hibernate关联关系映射(单向一对多、单向多对一、双向一对多)
- Hibernate映射详解(二)--多对一,一对多单向,一对多双向关联映射
- Hibernate映射详解(二)--多对一,一对多单向,一对多双向关联映射
- Hibernate映射详解(二)--多对一,一对多单向,一对多双向关联映射
- Hibernate映射详解(二)--多对一,一对多单向,一对多双向关联映射
- Hibernate映射详解(二)--多对一,一对多单向,一对多双向关联映射
- Hibernate单向一对多映射和双向一对多映射
- 单向一对多映射和双向一对多映射
- Hibernate学习手记(2)--单向一对多映射
- 【Hibernate步步为营】--(一对多映射)之单向关联
- 【Hibernate步步为营】--(一对多映射)之单向关联
- 【Hibernate步步为营】--(一对多映射)之单向关联
- Hibernate(五)——一对多单向关联映射
- 【Hibernate步步为营】--(一对多映射)之单向关联
- 对一个数组,将数组中偶数从大到小排序,奇数从小到大排序,奇数和偶数交叉着放且输出数组第一位放奇数 若奇数和偶数不等长,则把剩下的直接放到数组中
- solaris管理命令svcadm(服务状态管理,启动、停止等)
- malloc
- SQL模糊查询
- Log file sync caused by more commit
- 一对多单向映射(八)
- SEO规则
- 自娱自乐5之Linux gadget驱动4(接受发送,complete函数,setup函数)
- < Python >xmlrpclib
- [黑马程序员]c#基础复习1
- [LeetCode] Path Sum
- Snoopy采集类
- mysql忘记密码怎么办
- 谷歌地图纠偏数据库