hibernate中Query的list()和interate()方法比较和用法

来源:互联网 发布:win7软件联网慢 编辑:程序博客网 时间:2024/04/27 20:13

Query的两个方法,list() 和 iterate() , 两个方法都是把结果集列出来, 他们有几点不一样,
1:返回的类型不一样,list()返回List, iterate()返回Iterator,
2: 获取数据的方式不一样,list()会直接查数据库, iterate()会先到数据库中把id都取出来,然后真正要遍历某个对象的时候先到缓存中找,如果找不到,以id为条件再发一条sql到数据库,这样如果缓存中没有数据,则查询数据库的次数为n+1。

3:iterate会查询二级缓存, list只会查询一级缓存。
4: list()中返回的List中每个对象都是原本的对象, iterate()中返回的对象是代理对象.(debug可以发现)