某个函数里面有调用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()之卡住问题的更多相关文章

  1. [Hibernate] - Query Select

    测试了常用的一些HQL查询方法,具体HQL的强大可以参考: http://docs.jboss.org/hibernate/orm/3.5/reference/zh-CN/html/queryhql. ...

  2. Hibernate 查询:HQL查询(Hibernate Query Languge)

    HQL是一种面向对象的查询语言,其中没有表和字段的概念,只有类,对象和属性的概念. 使用HQL查询所有学生: public static void main(String[] args) { Sess ...

  3. hql(Hibernate Query Language)

    1.Criteria查询对查询条件进行了面向对象封装,符合编程人员的思维方式,不过HQL(Hibernate Query Language)查询提供了更加丰富的和灵活的查询特性,因此Hibernate ...

  4. HQL: The Hibernate Query Language

    Chapter 14. HQL: The Hibernate Query Language 14.1. Case Sensitivity 14.2. The from clause 14.3. Ass ...

  5. Hibernate Query Language查询:

    Hibernate Query Language查询: Criteria查询对查询条件进行了面向对象封装,符合编程人员的思维方式,不过HQL(Hibernate Query Language)查询提供 ...

  6. HQL(Hibernate Query Language)

    1. NativeSQL > HQL > EJB QL(JP QL 1.0) > QBC(Query By Criteria) > QBE(Query By Example)2 ...

  7. Hibernate - Query简易

    package cn.demo; import java.util.List; import org.hibernate.Query; import org.hibernate.Session; im ...

  8. hibernate query.list() 返回的数据类型

    在hibernate中,用hql语句查询实体类,采用list方法的返回结果为一个List,该List中封装的对象分为以下三种情况: 1.查询全部字段的情况下,如"from 实体类" ...

  9. Hibernate查询(HQL——Hibernate Query Language)

    HQL查询 HQL提供了是十分强大的功能,它是针对持久化对象,用取得对象,而不进行update,delete和insert等操作.而且HQL是面向对象的,具备继承,多态和关联等特性. from子句: ...

随机推荐

  1. ContentType和@ResponseBody

    ContentType 为 application/x-www-form-urlencoded (表单)时,入参前不需要加@ResponseBody: ContentType 为 applicatio ...

  2. require.js+knockout.js+.underscore模板引擎的使用

    第一种使用方式: HTML: <ul data-bind="template: { name: 'peopleList' }"></ul> <scri ...

  3. java的几种对象(PO,VO,DAO,BO,POJO)解释 【转】

    java的几种对象(PO,VO,DAO,BO,POJO)解释     一.PO:persistant object 持久对象,可以看成是与数据库中的表相映射的java对象.最简单的PO就是对应数据库中 ...

  4. RavenDb学习(八)高级特性上半部分

    .事务支持 别的关系型数据库和RavenDb一起使用 using (var transaction = new TransactionScope()) { BlogPost entity = sess ...

  5. Android开发-新建线程崩溃

    一直不满意车机不能实现屏保,最近发现可以通过设置亮度实现,顾萌生了自己写程序的来实现的念头,遂修改原来练手的app.毕竟过去了1年,各类程序.sdk都已经更新了不知道多少版本.经历了痛苦的升级.更新, ...

  6. 一图让你看懂CSS盒子模型

  7. r语言 load Rdata 获取表名 并直接转为数据表

    首先指定 load结果为一个对象 然后此对象的值 即为 str的 数据表名 然后使用  eval(parse(text = l)) 两个函数 将字符串 转可执行对象 即可完成重新赋值 > l & ...

  8. 【转】web前端到底怎么学?干货资料!

    一般据我经验,在喜欢并且决定和她恋爱之前,我都会做一下充分准备和调查,有必要了解和研究清楚 ‘她’ 的几个特性和习惯 web前端的基本工作职责 和基础技能(要清楚) web前端的分类和门派(简要概述, ...

  9. 自学QT之qss教程

    这篇文章来自于QT的帮助文档,你要是看了最新版的,会发现讲解得更棒.如果你的英文不是那么好,或者说看着头疼,那还是来看此篇吧. 在此之前说一个帮助文档的特别用法,绝不仅仅是搜单词,QT的文档非常强大的 ...

  10. Linux之安装本地Python和pip

    wget https://www.python.org/ftp/python/3.4.5/Python-3.4.5.tgz tar zxfv Python-3.4.5.tgz ./configure ...