Hibernate——一对多关系映射

一对多关联

实体之间的联系
联系(Relationship)
现实世界中事物内部以及事物之间的联系在信息世界中反映为实体内部的联系和实体之间的联系。
实体间联系可分为:
一对一联系(1:1); 
一对多联系(1:n);
多对多联系(m:n)。
两个实体型之间的联系
一对多联系(1:n)
定义:
如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B有一对多联系,记为1:n。
实例:
一个班级中有若干名学生,每个学生只在一个班级中学习。
实体一对多关联
Hibernate——一对多关系映射
User 到 Order 单向一对多关联
Hibernate——一对多关系映射
Order 到 User 单向多对一关联

Hibernate——一对多关系映射User 和 Order 双向一对多关联
数据库表体现一对多关联
在关系模型中,只存在外键参照关系,而且是 many 方参照 one 方。
Hibernate——一对多关系映射
Hibernate单向一对多关联
在 User 中定义一个 Order 的引用集合,而在 Order 中无需作任何定义
Hibernate——一对多关系映射
Hibernate——一对多关系映射
映射配置文件
在 User.hbm.xml 文件中使用 元素配置
Hibernate——一对多关系映射
注意:
元素属性:
name属性:指定要映射的属性名;
cascade级联操作属性:save-update、delete、all、none。
元素的子元素:
元素:column 属性设定所关联类对应表的外键;
元素:class 属性设定所关联的类。
Hibernate双向一对多关联
建立 User 和 Order 的双向一对多关联。
在 User 到 Order 单向一对多关联关系基础上,在 Order 类中增加 User 类型的属性。
Hibernate——一对多关系映射
映射配置文件
Order.hbm.xml 中添加 user 属性的映射
Hibernate——一对多关系映射
注意:
元素的属性:
name 属性:指定需映射的属性名;
column 属性:指定ORDER中的外键列名;
class 属性:指定所关联的类型。