码迷,mamicode.com
首页 > Web开发 > 详细

hibernate中hql语句中list和iterate区别

时间:2017-05-16 10:02:33      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:二次   lis   将不   hql   取数   获取   写入   数据   hiberna   

1.使用list()方法获取查询结果,每次发出一条语句,获取全部数据。
2.使用iterate()方法获取查询结果,先发出一条SQL语句用来查询满足条件数据的id,然后依次按照这些id查询记录,也就是要执行N+1条SQL语句(N为符合条件的记录数)


两次执行list()方法,每次执行都是发出一条SQL语句,查询所有数据。
下面看看两次执行iterate()方法的输出情况
两次执行iterate()方法,第一次执行时发出了N+1条SQL语句,而第二次执行,则只发出一套SQL语句,与先执行list()方法后执行iterate()方法时一致。这种情况产生的原因是因为Hibernate的缓存
1.list()方法将不会在缓存中读取数据,它总是一次性的从数据库中直接查询符合条件的数据,同时将获取的数据写入缓存。
2.iterate()方法则是获取了符合条件的数据的id后,首先根据id在缓存中寻找符合条件的数据,若缓存中无符合条件的数据,再到数据库中查询

hibernate中hql语句中list和iterate区别

标签:二次   lis   将不   hql   取数   获取   写入   数据   hiberna   

原文地址:http://www.cnblogs.com/Xuesk/p/6859665.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!