- lazy:true (默认)延迟检索,get时只查本表数据不查关联表数据,用到时再查
- lazy:false 立即检索
- lazy:extra 增强延迟检索,get时获得的是对象的代号,访问属性时再查一遍查出具体对象信息
- lazy:no_proxy 无代理延迟检索,get时获得的是null,访问属性时再查一遍
batch-size 批量检索
//获取三个班级极其学生 public void testBatch1(){ List<Class> classList=session.createQuery("from Class"); Iterator it=(Class)it.next(); Class c1=(Class)it.next(); Class c2=(Class)it.next(); Class c3=(Class)it.next(); c1.getStudents().iterator(); c2.getStudents().iterator(); c3.getStudents().iterator(); }
- 上面例子,配置batch-size=3时,一跳hql可以同时查询三个班的学生,否则需要三条hql来查询学生
- fetch:select 默认查询方式
- fetch:subselect 子查询,数据量大时能提高性能
- fetch:join 外连接查询,比如上面的例子默认是先查询班级再查询学生,配置了join之后只用一条hql即可作为一条hql查询,数据量很大时能提高性能,很少时优化了反而越慢了。
- 代码实例:e:/wuli数据组/一头扎进Hibernate/第十四讲源码