• 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/第十四讲源码