在使用hibernate配置实体间关系时,对于我总有个解不开的魔咒——思考两个实体间到底是一对一、一对多还是多对多的时候我总爱从指定的唯一个体出发来思考。比如学生和班级是很明显的一对多关系,但是从具体的个体出发,具体的某个学生只有一个具体的班级跟他相对应,变成了一对一关系然后就配置错误了,每次配置的时候都会跟自己强调千万要注意,但还是不长脑子,然后就在我要放弃治疗的时候突然在草稿上摸索出了这个关系总结的表格(让头脑比较清醒的淫们贱笑了哈,就当这是还算正确的歪理邪说好了),都是从固定个体出发,经我初步验证是正确的。
比如还是上面的例子——(学生和班级)
- 固定的学生到班级 (正向) 一对一 (固定学生存在一个班级)
- 固定班级到学生 (反向) 一对多 (固定班级有多个学生)
- 学生到班级 (关系配置) 多对一
再举一个例子——(学生和课程)
- 固定学生到课程 (正向) 一对多(固定学生可选多门课)
- 固定课程到学生(反向) 一对多 (固定课程可供多个学生选)
- 学生到课程 (关系配置) 多对多
关系总结
正向 | 反向 | 关系配置 |
---|---|---|
一对一 | 一对多 | 多对一 |
一对多 | 一对多 | 多对多 |
一对一 | 一对一 | 一对一 |
一对多 | 一对一 | 一对多 |