使用 mybatis (3.4.4) 查询 oracle 后端时,我的 java 应用程序在使用延迟加载时未返回所有行。
本质上,
当我使用一些 SQL 工具(如 oracle Sql Developer)查询我的数据库时,我得到 4000 个结果
当我使用导致延迟加载的selectCursor
conn.selectCusror(query)
查询时,我只得到 560 结果!当我使用selectList查询时,它将一次获取所有结果,
conn.selectList(query)
我得到 4000 个结果(与数据库匹配)
注意:游标提供与列表相同的结果,除了它使用迭代器懒惰地获取数据。文档
这就是我计算记录数的方式
Cursor<Object> cur = conn.selectCursor(query) ; // query definition is written below
int count =0;
for(Object ob : cur){
count++;
}
System.out.println(count);
询问
<select id="query" fetchSize="20000" resultType="java.util.Map" >
select distinct code from my CODES_VIEW
</select>
有人能告诉我为什么 selectCursor 没有给出所有 4000 个结果吗