Hibernate 一次查询分多次返回 避免内存溢出
public void grpcGpioDevice(StreamObserver<NI_GetAllDeviceListResponse> responseObserver,
Map<String, VsGrpc> vcuMap) {
Session session = null;
final StringBuffer sb = new StringBuffer("select name,vs_id,"
+ "description,direction,device_id,vx_external_id from EMS_GPIO_DEVICE ");
try {
session = getSession();
Query query = session.createSQLQuery(sb.toString()).setFetchSize(grpcRspNumber);
ScrollableResults results = query.scroll();
List<GpioDevice> gpioList = new ArrayList<>(); while(results.next()) {
Object[] obj = results.get();
GpioDevice gd = new GpioDevice();
gd.setName(obj[0] == null ?"":obj[0].toString());
gd.setVsId(obj[1] == null ?"":obj[1].toString());
gd.setDescription(obj[2] == null ?"":obj[2].toString());
gd.setDirection(obj[3] == null ?0:Integer.parseInt(obj[3].toString()));
gd.setDeviceId(obj[4] == null ?"":obj[4].toString());
gd.setVxExternalId(obj[5] == null ?"":obj[5].toString());
gpioList.add(gd);
if(gpioList.size()==grpcRspNumber) {
NI_GetAllDeviceListResponse.Builder response = NI_GetAllDeviceListResponse.newBuilder();
grpcFlowResult.getAiAoDiDoInfo(null, gpioList, vcuMap, "DIDO", response);
grpcFlowResult.result(response, responseObserver);
gpioList.clear();
}
}
if(gpioList.size()>0 && gpioList.size()<grpcRspNumber) {
NI_GetAllDeviceListResponse.Builder response = NI_GetAllDeviceListResponse.newBuilder();
grpcFlowResult.getAiAoDiDoInfo(null, gpioList, vcuMap, "DIDO", response);
grpcFlowResult.result(response, responseObserver);
gpioList.clear();
}
}catch (RuntimeException e) {
e.printStackTrace();
} catch (Exception ex) {
ex.printStackTrace();
} finally {
releaseSession(session);
}
}
Hibernate 一次查询分多次返回 避免内存溢出的更多相关文章
- Hibernate通过SQL查询常量时只能返回第一个字符的解决方法
在Hibernate中如果通过 [java] view plaincopy session.createSQLQuery("select '合计' as name from dual&quo ...
- 百万级数据查询到datatable中,提示内存溢出
参考资料: http://group.cnblogs.com/topic/32230.html
- 解决查询access数据库含日文出现“内存溢出”问题
ACCESS有个BUG,那就是在使用 like 搜索时如果遇到日文就会出现“内存溢出”的问题,提示“80040e14/内存溢出”. 会出问题的SQL: where title like '%" ...
- hibernate框架之-查询结果集返回类型
Hibernate支持HQL和SQL的查询,返回结果支持POJO类型或字段/数组的形式. 开发中用Hibernate进行数据库查询,用的是SQL.原来需要查询一个表的几乎所有字段,所以我使用了addE ...
- 关于hibernate纯sql查询返回结果集的问题(hbm.xml中不写多表关联)
相信用过hibernate的兄弟们都会因为多表复杂查询后,为返回的结果如何组装到一个VO中而烦恼不已.我也不停的为此而烦恼,但是在看了hibernate的transform后,感觉这个方法还挺管用的. ...
- Hibernate应用SQL查询返回实体类型
Hibernate应用SQL查询返回实体类型 Hibernate使用SQL查询返回实体类型 以前,使用SQL查询,结果放在 RS 结果集中,还要去转换影射到Java类中.Hibernate中,可以自动 ...
- Hibernate Query Language查询:
Hibernate Query Language查询: Criteria查询对查询条件进行了面向对象封装,符合编程人员的思维方式,不过HQL(Hibernate Query Language)查询提供 ...
- Hibernate原生SQL查询
最近在做一个较为复杂的查询,hibernate基本的查询不能满足,只好使用其提供的原生sql查询.参考网上的一些资料,做一些总结. 对原生SQL查询执行的控制是通过SQLQuery接口进行的,通过执行 ...
- hibernate的hql查询
1.概念介绍 1.Query是Hibernate的查询接口,用于从数据存储源查询对象及控制执行查询的过程,Query包装了一个HQL查询语句. 2.HQL是Hibernate Query Langua ...
随机推荐
- 很乱,临时保存,自定义v-model
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...
- 一头扎进sql之多表操作
一.多表查询时NULL值处理 要求返回比"allen"工资低的所有员工 select a.ename,a.conn from emp a where a.conn < ...
- docker中的命令参数(小白常用)
1 docker run run是最常用的命令,他是docker creat和docker start命令的组合,创建容器并启动它.run的参数比较难理解的是-i 和-t 以及-d,分别说说这三个. ...
- bootstrap table demo
js 代码 //搜索 function searchTable(){ var searchInfo = $("#searchForm").serializeJsonObject() ...
- Jsp&Servlet入门级项目全程实录第1讲
惯例广告一发,对于初学真,真的很有用www.java1234.com,去试试吧! 1.jdbc数据库连接(略) 2.登录表单 2.1设置内边距 <dir style="padding- ...
- 第6天:数据Array
数组Array every() 方法测试数组的所有元素是否都通过了指定函数的测试. array.every callback[, thisArg] callback 被调用时传入三个参数:元素值,元素 ...
- Java实现进程调度算法(一) FCFS(先来先服务)
一.概述 因为这次os作业对用户在控制台的输入输出有要求,所以我花了挺多的代码来完善控制台的显示. 也因为我这次要实现多个类似算法,所以将一些共性单独提取出来作为一个类. 如果只想要和算法有关的核心代 ...
- HDOJ2037 今年暑假不AC (经典的贪心问题)
Description “今年暑假不AC?” “是的.” “那你干什么呢?” “看世界杯呀,笨蛋!” “@#$%^&*%...” 确实如此,世界杯来了,球迷的节日也来了,估计很多ACMer也会 ...
- ajax+json+ashx实现一个页面多个tab的分页
1:项目功能需求:我的荣誉.审核中的荣誉.审核通过的荣誉在一个页面分别作列表展示.每个tab都需要分页,对实现的功能做个简单总结. 2:前台页面:引用的DBPage.js和pageCss.css实现分 ...
- redux、immutablejs和mobx性能对比(三)
四.我的结论 通过第三部分的数据数据分析,我觉得我们可以得到以下结论: 无论是在开发环境还是测试环下页面的首次加载速度结果都是:redux>immutablejs>mobx,但是他们之间的 ...