query.list query.iterate的区别

来源:互联网 发布:mac eclipse配置maven 编辑:程序博客网 时间:2024/05/21 19:24
list每次都是通过一条语句直接操作数据库取出所有的数据返回(并且将对象存入hibernate缓存);iterator首先通过一条语句取出所有数据的id,然后通过id在hibernate的一级缓存中查找是否存在该对象,如果存在则直接取出,如果没有则再次发出一条sql语句通过id取得对象(并且加入到缓存中),这样如果所有的id在缓存中都没有的话就会出现n+1条sql语句的问题。所以两者需要合理的结合使用,最大提高性能。
0 0