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 ...
随机推荐
- [心平气和读经典]The TCP/IP Guide(001)
The TCP/IP Guide[Page 40,41] Introduction To the TCP/IP Guide | TCP/IP指南概述 As I sit here writing thi ...
- 转载:怎么用eclipse开发C++程序(以后备用,待实现),使用CDT
一:准备工作:需下载以下三个软件包 a).Eclipse 3.1 官方站点: http://www.eclipse.org 工具下载地址:http://www.eclipse.org/download ...
- PTA (Advanced Level) 1018 Public Bike Management
Public Bike Management There is a public bike service in Hangzhou City which provides great convenie ...
- Examples of GoF Design Patterns--摘录
http://stackoverflow.com/questions/1673841/examples-of-gof-design-patterns You can find an overview ...
- IE7,8纯css实现圆角效果
众所周知,IE7,8不支持border-radius效果.但我们同样有办法用css实现这个效果,方法就是用border来模拟. <!DOCTYPE html> <html lang= ...
- WinForm-SuspendLayout、ResumeLayout、PerformLayou——转载
WinForm-SuspendLayout.ResumeLayout.PerformLayou——转载 https://www.cnblogs.com/si-shaohua/archive/2011/ ...
- JS 教程
1简介 1.JavaScript 是脚本语言 1.1轻量级的编程语言 1.2可插入 HTML 页面的编程代码 1.3可由所有的现代浏览器执行 2.您将学到什么 2.1JavaScript:写入 HTM ...
- django中的template部分
模版部分 取值 {{key}} 语句块 {%for item in data%} {%extends 'base.html'%} 深度变量的查找(万能的句点号) 在到目前为止的例子中,我们通过 con ...
- C# 提高必备精品--你所需要的NET笔记
一. 交换两个数据的值: 1. //创建一个临时变量 //int temp; //temp = num1; ////用num2的值覆盖掉num1 //num1 = num2; ////将存储在临时变 ...
- 如何解决本地mvn编译安装的jar包在IDEA的pom文件中找不到
在IDEA中maven作为一个内置的工具,不需要任何配置就可以使用,点开settings 可以看到有三个maven可以选择 C:/apache-maven-3.5.3这个maven当然是我自己安装的, ...