Hibernate学习笔记-----n+1问题

iterate查询与N+1此查询问题
* 使用iterate()出现n+1次问题,用list呢????list在不存在关联查询(懒加载情况)的情况不会产生此问题;
* 懒加载情况也会产生n+1次问题。
* ctr+t查看方法在实现类中的情况;

* get\load\update会从一级缓存读取数据;query会将数据放入一级缓存,但不会读取一级缓存,query能读取二级缓存;

static void query() throws Exception{ Session s = null; try { s = HibernateUtil.getSession(); Iterator iterator = s.createQuery("from Employee").iterate(); //会产生n+1问题 // while (iterator.hasNext()) { // Employee employee = (Employee) iterator.next(); // System.out.println(employee.getName()); // } //list在不存在关联查询(懒加载情况)的情况不会产生n+1问题 // List<Employee> list = s.createQuery("from Employee").list(); // for(Employee employee : list){ // System.out.println(employee.getName()); // } //本地化sql查询 List<Employee> list = s.createSQLQuery("select * from t_employee").addEntity(Employee.class).list(); for(Employee employee : list){ System.out.println(employee.getName()); } } catch (Exception e) { throw e; }finally{ if(s != null) s.close(); } } }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值