hibernate 1+N
来源:互联网 发布:中医处方软件 编辑:程序博客网 时间:2024/06/09 23:32
1+N问题也可以叫N+1问题,什么是1+N问题呢?
如果在一个对象里关联另一个对象,并且fetch = FetchType.EAGER。
比如说ManyToOne(OneToMany也存在这种问题)关联,本来只需要取Many里的对象属性,可是Many里关联的对象都会单独再发一条语句取关联对象的属性。
本来只用发一条就可以查出Many里的对象属性,可是它发了一条语句后,再发N条语句取关联对象的数据。
解决办法:
1、 设置多的那方的FetchType为LAZY
2、BatchSize:在One对象设置Size后,取出Many里的数据后,再发N/Size条语句取关联对象的数据,从而达到少发语句的目的。(----不能彻底解决~)
3、使用Join Fetch:(使用Criteria或者写HQL语句时在后面加上left join fetch w.category)将Many与One做外连接,因此只要发一条语句就可以查出Many与其相关联的One对象数据,Criteria默认就是这种做法。
如何选择解决办法:
如果只要用Many里的对象,不用关联对象的属性,那就用方法1解决;
如果要Many里的对象属性,也想要关联的对象属性就用方法3解决。
0 0
- Hibernate n+1问题
- hibernate N+1问题
- hibernate N+1问题
- Hibernate: N+1 problem
- Hibernate N+1 问题
- hibernate 1+N问题
- hibernate n+1查询
- Hibernate n+1问题
- hibernate:1+N问题
- Hibernate N+1 问题
- Hibernate n+1问题
- Hibernate N+1 问题
- Hibernate n+1问题
- Hibernate n+1问题
- Hibernate 1+N问题
- hibernate 1+n问题
- Hibernate N+1问题
- Hibernate n+1问题
- MFC程序逆向 – 消息篇(上)
- 《学习opencv》笔记——矩阵和图像操作——cvGEMM,cvGetCol,cvGetCols and cvGetDiag
- 配置SpringMVC的<init-param>标签时的错误cvc-complex-type.2.4.a
- 改变自我
- Makefile之关于程序的编译和链接
- hibernate 1+N
- 【OpenCV】 RGB和CIEXYZ颜色空间的转换及相关优化。
- OC-属性setter和getter以及点语法(2)
- 楼方鑫:MySQL并发控制&限流设计
- 基于linux 3.10的yaffs2移植
- 五句应该被淘汰的语句
- centos安装oracle笔记
- 模块管理常规功能自定义系统的设计与实现(52--功能更新[2] 对百分比字段的操作)
- 户外基础知识汇总