http://blog.csdn.net/yerenyuan_pku/article/details/70148618
Hibernate关联映射——对象的三种关系
Hibernate框架基于ORM设计思想,它将关系型数据库中的表与我们java中的类进行映射,一个对象就对应着表中的一条记录,而表中的字段对应着类中的属性。数据库中表与表之间存在着三种关系,也就是系统设计中的三种实体关系。下面进行简单阐述。
一对一
创建表的原则有两种:
- 唯一外键对应
在任意一方添加一个外键来描述对应关系。如下图所示:
或者 - 主键对应
一方的主键作为另一方的主键。如下图所示:
实体类的设计:
-
员工类:
public class Employee { // 其他属性... private Archives archives; }
-
档案类:
public class Archives { // 其他属性... private Employee employee; }
一对多(多对一)
客户与订单之间的关系就是一对多(或者多对一)关系。
建表的原则:在多的一方添加外键来描述关联关系。如下图所示:
实体类的设计:
-
客户类:
public class Customer { // 其他属性... private Set<Order> orders; }
-
订单类:
public class Order { // 其他属性... private Customer c; }
多对多
学生与老师之间的关系就是多对多的关系。
建表的原则:通过一张中间表来描述其对应关系。如下图所示:
实体类的设计:
-
学生类
public class Student { // 其他属性... private Set<Teacher> ts; }
-
老师类
public class Teacher { // 其他属性... private Set<Student> ss; }