hibernate中一对多多对一关系设计的理解(讲得好)
来源:互联网 发布:java sftp 遍历文件夹 编辑:程序博客网 时间:2024/05/16 01:20
1、单向多对一和双向多对一的区别?
只需要从一方获取另一方的数据时 就使用单向关联双方都需要获取对方数据时 就使用双向关系
部门--人员
使用人员时
如果只需要获取对应部门信息(user.getdeptarment())
不需要 从部门下的人员信息时,就配置成单向 多对一
使用部门时
如果只需要获取部门下人员信息(deptartmanet.getusers())
不需要 从人员获取部门信息时,就配置成单向 一对多
既要获取部门下人员deptartmanet.getusers()
又要从人员获取部门信息user.getdeptarment()
那就 配置成双向一对多,也就是双向多一
看需求来配置了。
2、策略
关联关系的本质是将关联关系映射到数据库中。关联关系在对象模型中体现为内存中的一个或多个引用。 一对多关系:一对多关系 分为“单向一对多/多对一关系”和“双向多对一”关系。
一”与“一对多”关联的组合。
多对一及一对多关联映射的区别(单向):
不管多对一还是一对多,都是在"多"的一端添加一个外键指向"一"的一端,只不过是多对一是在多的一端为其自己添外键,而一对多则是在一的一端为多的一端添加外主键。
模型:一个用户组(group)对应多个用户(user)。
多对一关联映射:是在"多"的一端添加一个外键指向"一"的一端,它维护的关系为多到一的关系,如:当载入一个用户(user)时将会同时载入组(group)的信息。它的关系映射将写在多的一端(user):
一对多关联映射:是在"一"的一端为多的一端添加外主键,它维护的关系为一到多的关系,如:当载入一个组(group)时将会同时载入此组用户(user)的信息。它的关系映射将写在一的一端(group):
此时通过<key column="relatedGroup"/>在多的一端(user)添加了一个外键“relateGroup”指向一的一端。在一的一端通过users维护多的一端。
总之,一对多和多对一的映射策略是一致的,都是通过在"多"的一端添加一个外键指向"一"的一端,只是站的角度不同。
个人总结:
1、cascade写在某方,表示在操作此方时,与此方关联的另一方是否被操作。此关联是指操作时对象中包含的对象(比如保存部门时,dept.setEm(em),em对象也被保存)。
比如部门表--员工表,双向多多对一,cascade="delete"写在部门表,那么表示在删除部门时与此部门相关的员工也全部被删除!
2、关系的维护(inverse)通常都是交给多方
阅读全文
0 0
- hibernate中一对多多对一关系设计的理解(讲得好)
- Hibernate之"一对多多对一关联关系"
- hibernate 一对多 多对一 关系的理解
- hibernate的一对多多对一映射SQLGrammarException异常
- Hibernate一对多多对一的相关配置和操作
- Hibernate中一对多、多对一关系的映射
- 自己理解的Hibernate多对一,一对多关系学习
- Hibernate中一对多和多对一关系
- Hibernate中的cascade级联属性一对多多对一的增删改过程探讨
- 在单元测试hibernate的一对多多对一映射遇到异常
- Hibernate一对多、多对一关联关系的使用
- Hibernate的关系映射-------多对一与一对多
- hibernate的一对多和多对一关系映射
- hibernate双边的多对一、一对多关系
- Hibernate 多对一与一对多的关系
- Hibernate 中 一对多、多对一、 关联关系的 配置
- Hibernate关联关系映射(一对多/多对一)
- 【hibernate】多对一,一对多关系
- 图片自适应布局
- [目标检测]Fast RCNN算法详解
- Unity 手动拆分和组装模型
- 圆形比例图(饼状图)
- [2017纪中10-24]合影 树型DP+组合数学
- hibernate中一对多多对一关系设计的理解(讲得好)
- 剑指offer学习笔记(二)
- 「全链路」取代UI/交互岗位是即将到来的趋势么
- MyBatis中Like语句使用方式
- 1021. 个位数统计 (15)
- ORA-28001: the password has expired解决方法
- droidcon北京2017安卓技术大会即将召开 全球最有影响力的技术大会
- 10大H5前端框架
- 制作ext4文件系统