1+N问题及解决
来源:互联网 发布:苹果手机短信恢复软件 编辑:程序博客网 时间:2024/06/06 22:17
1+N问题也可以叫N+1问题,什么是1+N问题呢?
如果在一个对象里关联另一个对象,并且fetch = FetchType.EAGER。
比如说ManyToOne(OneToMany也存在这种问题)关联,本来只需要取Many里的对象属性,可是Many里关联的对象都会单独再发一条语句取关联对象的属性。
本来只用发一条就可以查出Many里的对象属性,可是它发了一条语句后,再发N条语句取关联对象的数据。
解决办法:
1、fetch = FetchType.LAZY:在合适的时候才发出语句(按需要发语句)。
2、BatchSize:在One对象设置Size后,取出Many里的数据后,再发N/Size条语句取关联对象的数据,从而达到少发语句的目的。
3、Join Fetch:将Many与One做外连接,因此只要发一条语句就可以查出Many与其相关联的One对象数据,Criteria默认就是这种做法。
如何选择解决办法:
如果只要用Many里的对象,不用关联对象的属性,那就用方法1解决;
如果要Many里的对象属性,也想要关联的对象属性就用方法3解决。
- 1+N问题及解决
- 解决n+1问题
- ManyToOne的xml配置 及 解决N+1问题
- Hibernate 解决n+1问题
- Hibernate解决n+1问题
- Hibernate的N+1查询及解决
- 如何解决Hibernate 的N+1问题
- [ROR] 解决N+1问题的心得
- 解决Hibernate中1+n的问题
- Hibernate N+1问题及解决办法
- Hibernate N+1 问题及解决办法
- hive问题及解决1
- Ibatis解决N+1的方案及优缺点
- N皇后问题的解决
- DFS解决n皇后问题
- n皇后问题(C++解决)
- Java解决N皇后问题
- 解决IBatis中的多对一映射n+1问题
- ArcGis For Silverlight API,地图显示Gis,绘制点,线,绘制图等(三)--绘制点、线、圆,显示提示信息
- sqlServer增加一字段并给此字段添加注释
- gdb 断点设置方法
- Android升级ADT22后会报ClassNotFoundException的原因分析
- Linux makefile 教程 非常详细,且易懂
- 1+N问题及解决
- 使用vimdiff 替换svn diff
- sql中同一个表的上下两行之间的某个字段相减有关问题
- ubuntu自启动默认登录(不需要输入密码)
- 关于SAFEARRAY的,转载了篇文章,比较全
- 如何把jar包发布到maven私服
- 用户态到内核态切换分析
- RRiBbit 学习记录
- alpha混合技术