而iterate 方法,则是首先通过一条Select SQL 获取所有符合查询条件的记录的id,再对这个id 集合进行循环操作,通过单独的Select SQL 取出每个id 所对应的记录,之后填入POJO中返回。
也就是说,对于list 操作,需要一条SQL 完成。而对于iterate 操作,需要n+1条SQL。
看上去iterate方法似乎有些多余,但在不同的情况下确依然有其独特的功效,如对海量数据的查询,如果用list方法将结果集一次取出,内存的开销可能无法承受。
另一方面,对于我们现在的Cache机制而言,list方法将不会从Cache中读取数据,它总是一次性从数据库中直接读出所有符合条件的记录。而iterate 方法因为每次根据id获取数据,这样的实现机制也就为从Cache读取数据提供了可能,hibernate首先会根据这个id 在本地Cache 内寻找对应的数据,如果没找到,再去数据库中检索。
1:返回的类型不一样,list()返回List, iterate()返回Iterator,
2: 获取数据的方式不一样,list()会直接查数据库, iterate()会先到数据库中把id都取出来,然后真正要遍历某个对象的时候先到缓存中找,如果找不到,以id为条件再发一条sql到数据库,这样如果缓存中没有数据,则查询数据库的次数为n+1。
4: list()中返回的List中每个对象都是原本的对象, iterate()中返回的对象是代理对象.(debug可以发现)
分享到:
相关推荐
资源来自pypi官网。 资源全名:plone.app.iterate-1.0a1.2-py2.4.egg
资源分类:Python库 所属语言:Python 资源全名:plone.app.iterate-1.0b1.1-py2.4.egg 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
python库。 资源全名:plone.app.iterate-1.0a1.2.tar.gz
3、#foreach model in ${list},means that iterate list,modelId is implied index of the list. 4、#each ${model} ${width1},${width2},model can be a Map,JavaBean,Collection or Array object, #each key ...
facebook开源的pytext源码。PyText is a deep-learning based NLP modeling framework built ... We are using PyText in Facebook to iterate quickly on new modeling ideas and then seamlessly ship them at scale.
特征:与C语言语法相似Structs, lists, arrays, hashesPerl 的正则表达式: buf =~ /.*foo/, I/O: while (buf = )没有内存管理(引用计数)编译到Tcl的字节代码,little-lang可以调用的Tcl,TCL可以调用little-lang...
当应用程序调用Session的save()、update()、savaeOrUpdate()、get()或load(),以及调用查询接口的list()、iterate()或filter()方法时,如果在Session缓存中还不存在相应的对象,Hibernate就会把该对象加入到第一级...
NULL 博文链接:https://364232252.iteye.com/blog/2369137
第24章 Hibernate与Struts框架 24.1 实现业务数据 24.2 实现业务逻辑 24.3 netstore应用的订单业务 24.4 小结 第25章 Hibernate与EJB组件 25.1 创建EJB组件 25.1.1 编写Remote接口 25.1.2 编写Home...
使用 D3.js 绘制众神图 The Graph of the Gods 的可视化,以为例,...gremlin> g.V.sideEffect{it.setProperty('type', (String) it.getVertexLabel())}.iterate() gremlin> g.saveGraphSON("graph-of-the-gods.json")
需要指定的是Spring 1.2.5提供了两套Hibernate的支持包,其中Hibernate 2相关的封装类位于org.springframework.orm.hibernate2.*包中,而Hibernate 3.0的封装类位于org.springframework.orm.hibernate3.*包中,...
随机迭代 以随机顺序迭代列表中的值 npm install random-iterate 用法 var iterate = require ( 'random-iterate' ) var ite = iterate ( [ 1 ,... log ( ite ( ) ) // returns null (end of list) 执照 麻省理工学院
一.使用Hibernate的Session对象操作数据库 1.初始化Hibernate:在要使用Hibernate的类的方法中实例化... (7).createQuery(String HQL).list()/iterate()/uniqueResult(); //HQL(Hibernate Query Language)语句查询
-v $( pwd ) /src:/home/iterate/application/src \ iterate/summer-class:latest CRA沸腾板 该项目是通过引导的。 您将在下面找到一些有关如何执行常见任务的信息。 您可以在找到本指南的最新版本。 目录 可用...
iterate-clojure-workshop12 或者,将其解压缩到某处并输入。 要准备好您需要的所有工具,请执行附加的脚本(如果您已经安装了 Leiningen 或 Catnip,您可能需要检查/修改它): bash$ source prepare_all.sh # Note...
// iterate through constants // format: constant, coinSymbol, coinName // ie. [ 0x80000002, "LTC", "Litecoin" ] // Some rows have no coin and are just indices and constants constants . forEach ( row =...
数据块__MODEL_TEST 基于WINE数据集的MLflow项目是一种格式,用于主要基于约定以可重用和可再现的方式打包数据科学代码。...# Iterate over three different runs with different parameters for p
struts-logic iterate标签学习指南 这标签还不错