Hibernate : Query.list()、Query.iterator()的区别
来源:互联网 发布:mac好还是windows好 编辑:程序博客网 时间:2024/05/22 14:25
Query上有list()与iterator()方法,两者的差别在于list()方法在读取数据时,并不会利用到快取,而是直接再向数据库查询,而iterator()则将读取到的数据写到快取,并于读取时再次利用。
来看看下面的程序:
Session session = sessionFactory.openSession();
Query query = session.createQuery("from User");
List users = query.list();
users = query.list();
session.close();
这个程序片段会使用两次SQL来查询数据库:
Hibernate: select user0_.id as id, user0_.name as name0_, user0_.age as age0_ from user user0_
Hibernate: select user0_.id as id, user0_.name as name0_, user0_.age as age0_ from user user0_
如果在Session关闭之前,要再将所有数据在取出,可以使用iterator()方法,例如:
Session session = sessionFactory.openSession();
Query query = session.createQuery("from User");
Iterator users = query.iterate();
users = query.iterate();
session.close();
这个程序片段会使用一次SQL向数据库查询,第二次则直接从快取中取得数据:
Hibernate: select user0_.id as col_0_0_ from user user0_
由于使用iterator()方法时会使用到Session level快取,所以在查询大量数据时,会耗用大量的内存,必要时可以使用Session的evict()或clear()方法来清除快取。
- Hibernate : Query.list()、Query.iterator()的区别
- Hibernate : Query.list()、Query.iterator()的区别
- Hibernate : Query.list()、Query.iterator()的区别
- Hibernate : Query.list()、Query.iterator()的区别
- Hibernate : Query.list()、Query.iterator()的区别
- Hibernate中的query.list()与query.iterator()方法的区别
- Hibernate中Query.list()和Query.iterator()的区别
- Query.list()和Query.iterator()的区别
- hibernate-Query的list方法与iterator方法的区别
- Hibernate Query查询的list方法和iterator方法区别
- Hibernate : Query.list()、Query.iterate()的区别
- query的list和iterator区别
- Query.list() 与 Query.iterator() 区别
- Hibernate:Query接口中list和iterator区别
- hibernate Query中的list和iterator方法区别
- hibernate的query.iterate()与query.list()的区别(四)
- Hibernate:Query.list 与 Query.iterate 的区别
- Hibernate之Query查询的list()方法和iterator()方法的区别
- 后台控制,前台弹出对话框,并跳转
- SQLServer的public服务器角色
- Balsamiq Mockups 产品交互手绘工具介绍
- sqlyog试用30天到期怎么办?
- 深入浅出.NET泛型编程
- Hibernate : Query.list()、Query.iterator()的区别
- lion下寻找模拟器沙盒 Library隐藏了
- php zip 打包文件夹
- Listbox 重复点击事件不能响应的解决方法
- Data roaming notification
- android源码结构分析
- Android 读取<meta-data>元素的数据
- linux经典书籍推荐
- poj1125-Stockbroker Grapevine -弗洛伊德最短路径