解决Hibernate中1+n的问题
来源:互联网 发布:调酒刻度杯淘宝 编辑:程序博客网 时间:2024/05/19 18:16
一、1+n
在执行查询时,发送一条SQL语句获取N个主体对象,当需要使用这N个主体对象的关联属性时,Hibernate又发送N条SQL语句查询这个N个主体对象的关联属性,这就是1+N问题。
List<Dept> list=session.createQuery("from Dept").list(); //发送一条sql语句查询主体对象
for (Dept dept2 : list) {
Set<Employee> set=dept2.getEmp();
int count=set.size(); //当要用到主题对象的关联属性时又发送n条sql语句
}
二、解决1+n的方案
1、设置关联属性延迟加载,这样关联属性按需加载
2、设置关联属性的fetch属性值为join,这样会使用左外连接立即加载关联属性,但一旦设置该属性值为join,不管在什么情况下都要立即加载关联属性。
3、为关联属性设置batch-size,减少查询次数,假设batch-size为4,那么SQL语句的数量将减少为1+N/4条。
4、在HQL中使用fetch join,这样就会Hibernate通过左外连接立即获取关联属性。在Criteria中可以通过设置FetchMode.JOIN。
阅读全文
0 0
- 解决Hibernate中1+n的问题
- 如何解决Hibernate 的N+1问题
- Hibernate 解决n+1问题
- Hibernate解决n+1问题
- hibernate的N+1问题的分析与解决
- Hibernate 1+N问题的原理与解决
- 20 Hibernate 1+N问题的原理与解决
- Hibernate 1+N问题的原理与解决
- Hibernate 1+N问题的原理与解决
- 如何解决Hibernate 的N+1问题 .list to map
- 20 Hibernate 1+N问题的原理与解决
- 怎么解决Hibernate的n+1问题文章2
- Hibernate 1+N问题的原理与解决
- Hibernate中1+N问题
- hibernate中1+n问题
- Hibernate的1+N问题(N+1)
- Hibernate的N+1问题
- Hibernate的n+1问题
- 模糊集合理论
- Number调用toString()方法产生的问题
- C语言实现顺序表
- C语言中“?:”是一个三目运算符(唯一的)
- 第4周项目2
- 解决Hibernate中1+n的问题
- transfer files between 2 android phones usingwifi
- loadrunner Web_类函数之web_table()
- Android圆形进度条
- hive与hbase的区别
- HDOJ2015
- Android SeekBar宽度填充全屏
- jsp基本语法。
- unity神奇的效果:角色随机移动