Hibernate中list()与iterator()的区别
2010-05-21 13:21
405 查看
首先两种最大的区别就是利用缓存上的区别.
list只能利用查询缓存(session.setCacheable(true).list());无法利用二级缓存.
注意:Hibernate的二级缓存策略,是针对于ID查询的缓存策略,对于条件查询则毫无作用。
譬如:SELECT c.id, c.name FROM Cat AS c WHERE c.name = 'you' ;不会填充缓存.
虽然list不能利用二级缓存,但是可以把查询到的对象写入二级缓存.
iterator 会利用二级缓存
iteratro()的查询过程
SELECT id FROM cat;
SELECT * FROM cat WHERE id = ?;
SELECT * FROM cat WHERE id = ?;
SELECT * FROM cat WHERE id = ?;
......
因为list一次把所有数据取出来,它不会先去取主键,所有利用不了二级缓存
list只能利用查询缓存(session.setCacheable(true).list());无法利用二级缓存.
注意:Hibernate的二级缓存策略,是针对于ID查询的缓存策略,对于条件查询则毫无作用。
譬如:SELECT c.id, c.name FROM Cat AS c WHERE c.name = 'you' ;不会填充缓存.
虽然list不能利用二级缓存,但是可以把查询到的对象写入二级缓存.
iterator 会利用二级缓存
iteratro()的查询过程
SELECT id FROM cat;
SELECT * FROM cat WHERE id = ?;
SELECT * FROM cat WHERE id = ?;
SELECT * FROM cat WHERE id = ?;
......
因为list一次把所有数据取出来,它不会先去取主键,所有利用不了二级缓存
相关文章推荐
- Hibernate的load()、get()、list()、iterator()方法的区别
- hibernate iterator 与List区别
- Hibernate面试题 --- list和iterator方法的区别
- Hibernate面试题 --- list和iterator方法的区别
- Hibernate面试题 --- list和iterator方法的区别
- Hibernate之Query查询的list()方法和iterator()方法的区别
- Hibernate各类概念-N+1什么意思?以及List和Iterator的区别
- hibernate -- list和iterator方法的区别
- Hibernate:Query接口中list和iterator区别
- Hibernate : Query.list()、Query.iterator()的区别
- HIbernate——list和iterator的区别
- List和Iterator在用hibernate查询时候的区别
- Hibernate框架---- N+1是什么?它们的list和iterator区别(九)
- hibernate -- list和iterator方法的区别
- Hibernate学习——Tip1 关于查询中list和iterator的区别
- hibernate中Query的list和iterator区别
- hibernate中Query的list和iterator区别(续)
- Hibernate--- list和iterator方法的区别
- hibernate-Query的list方法与iterator方法的区别
- Hibernate取数据时iterator和list的区别