转: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子句: ...
随机推荐
- me909e-821 拨号流程
第一次: at+cereg=1 OK ...
- NLP-训练个model出来写诗
2018年新年,腾讯整出来个ai春联很吸引眼球,刚好有个需求让我看下能不能训出来个model来写出诗经一样的文风,求助了下小伙伴,直接丢过来2个github,原话是: 查了一下诗经一共38000个字, ...
- 30个开源电子商务系统(PHP)
osCommerce osCommerce是一款著名的PHP开源电子商务解决方案,提出“开箱即用”的强大功能,使网上商店安装非常方便快捷,并可以作为GNU通用公共授权的开源项目免费发布.osComme ...
- 简介vsftpd及搭建配置 关闭selinux 不能创建文件
简介vsftpd及搭建配置一.简介 FTP(文件传输协议)全称是:Very Secure FTP Server. Vsftpd是linux类操作系统上运行的ftp服务器软件. vsftp提供三种登陆方 ...
- “System Volume Information”文件夹里的NTFS木马(安全问题)
病毒保护伞 原因:由于NTFS的分区里该目录只有SYSTEM权限,导致杀毒软件没有权限查杀藏匿于该目录的病毒.(现在大多数软件都能查杀) 解决方案:阻止“System Volume Informati ...
- Ogre GpuProgram分析
和前面讲解的Compositor一样,GpuProgram也对应一种资源文件,意思我们可以直接写一个文件来完成,不需要了解相关的类. 但是就和winform一样,直接拖控件能完成大部分工作,假如如果需 ...
- c算法
斐波那契 void main() { ]={, }, i; ;i<=;i++) //这里需要注意,for循环虽然<=9, 还有个i++ { a[i] = a[i-] + a[i-]; pr ...
- e616. Determining If a Focus Lost Is Temporary or Permanent
A temporary focus-lost event occurs if the focus moves to another window. It's temporary because the ...
- python3处理json文件中含有中文dumps的应用
python3的编码问题一直比较简单 内存中字符串采用unicode 存储到文件中采用utf-8 以下为str,byte互相转换的过程: str = "abc学习" str Out ...
- googletest进行单元测试(使用cmake编译)
一.前提: 1.假定你的系统为centos6系列 2.假定你已经安装了基本的编译环境,gcc,g++4.4.7 3.假定你已经设置了环境变量:KDS_MOBILE_STOCK_HOME 4.假定你已经 ...