转:Hibernate query.list()之卡住问题
某个函数里面有调用Query的list()方法,然后它有时会出现这种症状:
忽然停住不动,但是也没报异常,就是界面死了。
我的查询差不多是这样:
Query q=sessionFactory.openSession().createSQLQuery("select * from XEntity where x=x").addEntity(XX.class);
List resultList=q.list();
这个sessionFactory是在Spring配置文件里面配好的,用它管理session。
我调试的时候发现一些特征,如果记录在数据库中没有,List就会停住(这种现象观察到很多次);
但是后来又观察到其实不一定出现这种情况,有时list也会返回null,所以不是原生SQL查询的问题。
于是上网搜了很久,中文关键词搜索,见到百度知道中有一个问题跟我一模一样的,但是可惜没人回答,至于其他的问题,也是风马牛不相及,慨叹中文社区不热心之余,查了下英文,估计是关键词不对头,没查到什么有用的东西。
感觉这下惨了,自己慢慢调---看着各个线程在那里跳来跳去,忽然想到会不会是session的问题,因为在搜索中似乎有见到说session有时会不够用,从而程序可能停止或抛出异常,于是我立马想到我的函数中没有释放session!
我现在spring配置文件中把数据库连接池的大小调高了很多,发现情况有明显好转,但还会有死掉的情况,于是动手在每个涉及数据库访问的函数中加了session.close(),这下果然可以运行了。
估计是session没close时,会引用了分配的数据库连接,在一段时间内这个连接时不会释放的,即使是空闲的连接,所以出现了等待的情况。
困扰了我几个小时的问题终于解决,爽!
转:Hibernate query.list()之卡住问题的更多相关文章
- [Hibernate] - Query Select
测试了常用的一些HQL查询方法,具体HQL的强大可以参考: http://docs.jboss.org/hibernate/orm/3.5/reference/zh-CN/html/queryhql. ...
- Hibernate 查询:HQL查询(Hibernate Query Languge)
HQL是一种面向对象的查询语言,其中没有表和字段的概念,只有类,对象和属性的概念. 使用HQL查询所有学生: public static void main(String[] args) { Sess ...
- hql(Hibernate Query Language)
1.Criteria查询对查询条件进行了面向对象封装,符合编程人员的思维方式,不过HQL(Hibernate Query Language)查询提供了更加丰富的和灵活的查询特性,因此Hibernate ...
- HQL: The Hibernate Query Language
Chapter 14. HQL: The Hibernate Query Language 14.1. Case Sensitivity 14.2. The from clause 14.3. Ass ...
- Hibernate Query Language查询:
Hibernate Query Language查询: Criteria查询对查询条件进行了面向对象封装,符合编程人员的思维方式,不过HQL(Hibernate Query Language)查询提供 ...
- HQL(Hibernate Query Language)
1. NativeSQL > HQL > EJB QL(JP QL 1.0) > QBC(Query By Criteria) > QBE(Query By Example)2 ...
- Hibernate - Query简易
package cn.demo; import java.util.List; import org.hibernate.Query; import org.hibernate.Session; im ...
- hibernate query.list() 返回的数据类型
在hibernate中,用hql语句查询实体类,采用list方法的返回结果为一个List,该List中封装的对象分为以下三种情况: 1.查询全部字段的情况下,如"from 实体类" ...
- Hibernate查询(HQL——Hibernate Query Language)
HQL查询 HQL提供了是十分强大的功能,它是针对持久化对象,用取得对象,而不进行update,delete和insert等操作.而且HQL是面向对象的,具备继承,多态和关联等特性. from子句: ...
随机推荐
- virtualbox ubuntu 虚拟画面卡顿问题
要在虚拟机全局配置里面添加选项:
- Android——音乐播放器完善——进度条显示当前播放进度,加可拖动进度条(未待解决完问题)
效果: 问题:可拖动进度条随进度条移动时,会致使音乐卡顿(待解决) xml <?xml version="1.0" encoding="utf-8"?&g ...
- 【LINUX】——FreeBSD中的一些常规配置
一:在为终端的目录添加颜色: 在 ~/.cshrc 文件中添加以下两行: setenv CLICOLOR 1 setenv LSCOLORS Gxfxaxdxcxegedabagacad CLICOL ...
- kinect2的标定
我用的是ubuntu14.04LTS,ROS 版本是indigo,kinect v2,我是用双系统装的ubuntu,关于怎么使用安装kinect2的安装以及使用的都在github上有着详细的说明 Ki ...
- jquery 实现下拉菜单
Jquery 是一个轻量的框架,个人认为非常好用,今天就写一个非常简单的例子,实现下拉菜单功能: 首先肯定要在页面引用jquery.js 版本不限 : 接下来把=================== ...
- html5和css3实现的3D滚动特效
今天给大家带来一款html5和css3实现的3D滚动特效.效果图如下: 在线预览 源码下载 实现的代码. html代码: <div class="container"&g ...
- [Intellij] Intellij IDEA 使用中遇见的问题
问题集锦 [IntelliJ IDEA14 + tomcat 设置热部署] 点击deployment查看Deploy at the server startup 中tomcat每次所运行的包是 xxx ...
- Three ways to make your WPF images pop out on MouseOver
There are a couple of ways in WPF to make an image pop out when moving mouse over it. Of course we w ...
- 路由策略和策略路由 & route-map
今天,这个专题应用下route-map,在这个之前,有很多内容需要掌握,不是简单的制定一个路由图就可以了. -------- 本次专题理论的东西居多,但是不是复制黏贴,是加上自己的理解思想. 第一个要 ...
- USB2.0学习笔记连载(四):安装Cypress官网套件
上一篇博客大概讲了一下USB通用驱动程序的解析.笔者使用Cypress官网给定的资料去完成USB驱动开发.官网资料地址:http://www.cypress.com/?rID=14321 下载如下图的 ...