日期:2014-05-18  浏览次数:20757 次

Hibernate一对多,多对多的关系
为什么要用Hibernate一对多,多对多关系,它解决了什么问题,以及数据库是怎么样建立这种关系的,请各位大虾举例子说说~~

------解决方案--------------------
这是从面向对象的角度来说的,比如person 和 group ,典型的多对一,
实际也很好理解,就是正常思维,谁包含谁,谁对应谁。
在数据库中一般是通过外键来建立关系
------解决方案--------------------
在数据库建表是表与表之间的关系!
例如老师和学生
一个老师可以教很多学生(一对多)
学生也有好几位老师(多对多)
------解决方案--------------------
hibernate 的一对多 多对多关系 就相当于 数据库中的外键参照关系

区别:hibernate是面向对象的,所以一对多 多对多就要使用对象或 集合对象来实现
现在大部分流行的数据库都是 关系数据库,外键参照关系 都是使用id

例子:一个顾客Customer可以有多个定单Order,一个定单只对应一个顾客
在数据库中,Customer(CUSTOMER_ID,CUSTOMER_NAME);ORDER(ORDER_ID,CUSTOMER_ID,ORDER_NUMBER)

在hibernate的pojo类中(面向对象):
public class Customer{
private long id;
private String name;
}
public class Order{
private Customer customer;
private long id;
private long number;
}

------解决方案--------------------
mark!!~~