hibernate进阶 (8)双向多对一
来源:互联网 发布:防攻击软件 编辑:程序博客网 时间:2024/06/11 12:31
接着上两节讲
双向多对一 :单向多对一 + 单向一对多
即:双方都要有对方的引用,都要设置映射文件
Gradel类设置对对方的引用
Grade,hbm.xml设置一对多映射
Student类:设置对对方的引用
Student.hbm.xml 设置多对一映射
测试方法:
执行结果,执行成功:数据库的图我就不截了
下面是关于双向多对一性能方面的优化问题
如下执行的时候
头两句是查询数据库主键的最大值(这是设置自增数据库必须做的一步)
第三句是添加班级
第四五句是添加学生
最后两句(红框)是为了维持一对多关系做的一步,其实完全没必要,学生既然知道自己的班级了,这个是不是就没必要了可能你还不太明白,请往下读....
优化:
这里需要理解一个属性
inverse属性:<set>节点的inverse属性指定关联关系的控制方向,默认由one方(班级)来维护
其实我们不希望班级来维护这个关联关系,学生自身会进行关联关系的维护(如果双方都维护,性能上是有影响的)
关联关系中,inverse=“false”则为主动方,由主动方负责维护关联关系
在一对多关联中,只能设置one方的inverse为true,定义为反转由多方(班级)进行维护,这样one方就不会进行管理关系的维护了,有利于性能提升
Grade.hbm.xml
运行,可以看到不再执行那两句了
0 0
- hibernate进阶 (8)双向多对一
- Hibernate进阶之多对多双向关联
- hibernate中一对多(多对一)双向关联
- hibernate 关联映射 双向多对一(一对多)
- Hibernate双向一对多(多对一)
- Hibernate (9)双向多对一cascade属性
- 五、hibernate多对一(双向关联)
- Hibernate Annotation 多对一 双向
- Hibernate双向多对一关系
- hibernate双向多对一映射关系
- hibernate ORM映射:双向多对一
- Hibernate双向多对一关系
- Hibernate学习笔记----双向多对一
- hibernate 多对一的双向理解
- Hibernate双向多对一映射
- Hibernate双向多对一(注解)
- Hibernate双向多对一实战
- Hibernate 06 : 双向多对一
- 机械键盘测试(1)——序
- poj 2823 Sliding Window(单调队列模板)
- Ant之build.xml(三)
- poj之旅——2104
- hdu1874 单源最短路Dijkstra
- hibernate进阶 (8)双向多对一
- java 薪酬接口
- 求GCD(最大公约数)的算法
- 说说泛型
- IntelliJ IDEA创建项目技巧
- SSH---Structs初级篇1
- java对象内存到底占用多少
- openssl_sign(): supplied key param cannot be coerced into a private key
- QTableView、QTableWidget设置默认行高和列宽