list每次都是通过一条语句直接操作数据库取出所有的数据返回(并且将对象存入hibernate缓存); iterator首先通过一条语句取出所有数据的id,然后通过id在hibernate的一级缓存中查找是否存在该对象,如果存在则直接取出,如果没有则再次发出一条sql语句通过id取得对象(并且加入到缓存中),这样如果所有的id在缓存中都没有的话就会出现n+1条sql语句的问题。 所以两者需要合理的结合使用,最大提高性能。
query.list query.iterate的区别
最新推荐文章于 2023-03-29 21:20:50 发布