`
huzhiyong56
  • 浏览: 26870 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Hibernate 自定义查询卡死情况解决

 
阅读更多

    我们使用hibernate查询的时候经常会遇到多查询几次卡死的问题,其实这里主要是session不够用了,当每查询一次时就会创建一个session 如下面的一个简单分页查询

public List findPageService(int pageNow,int pageSize)
{ 
String hql="。。。。。。。。。。。。。";
Session session=getHibernateTemplate().getSessionFactory().openSession();
Query q= session.createQuery(hql);
int first=(pageNow-1)*pageSize;
q.setFirstResult(first);
q.setMaxResults(pageSize);
List list= q.list(); 
return list;
}

 

就会遇见这样的问题

解决办法很简单

我们都知道hibernateDAO 是继承 HibernateDaoSupport

我们就可以调用父类下面的releaseSession(Session)方法来舍弃这个session

这里session.close()和session.clear()方法是没有作用的 切记

所以上面的方法只要加一行代码就可以了

   

public List findPageService(int pageNow,int pageSize)
{ 
String hql="。。。。。。。。。。。。。";
Session session=getHibernateTemplate().getSessionFactory().openSession();
Query q= session.createQuery(hql);
int first=(pageNow-1)*pageSize;
q.setFirstResult(first);
q.setMaxResults(pageSize);
List list= q.list(); 
super.releaseSession(session); 

return list;
}

 

注意:如果有多对一关系的话这里我们需要设置<many-to-one>里的lazy属性为false

还有一种方法是用sping管理session方法

getHibernateTemplate().executeFind()包住查询代码就OK了,spring会自动插入关闭当前session的代码


分享到:
评论

相关推荐

    JSP开发实用技术整理

    6.Hibernate查询(1) 4 7.网页中&lt;%if%&gt; 5 8.java简单的获取系统网卡mac地址 5 9. 增加tomcat的内存 6 10.JAVA获取系统当前的用户 7 11.javascript获取客户端网卡MAC地址和IP地址和计算机名 7 12.JAVA反射 8 13. ...

    Spring面试题

    当Hibernate在查询数据的时候,数据并没有存在与内存中,当程序真正对数据的操作时,对象才存在与内存中,就实现了延迟加载,他节省了服务器的内存开销,从而提高了服务器的性能。 3.Hibernate中怎样实现类之间的...

    JAVA上百实例源码以及开源项目

     QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新好友列表,响应用户双击的事件,并得到好友的编号,把聊天界面加入到管理类,设置密码保护等。 Java编写的网页版魔方游戏 内容索引:JAVA...

    JAVA上百实例源码以及开源项目源代码

     QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新好友列表,响应用户双击的事件,并得到好友的编号,把聊天界面加入到管理类,设置密码保护等。 Java编写的网页版魔方游戏 内容索引:JAVA...

    java源码包---java 源码 大量 实例

     QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新好友列表,响应用户双击的事件,并得到好友的编号,把聊天界面加入到管理类,设置密码保护等。 Java编写的网页版魔方游戏 内容索引:JAVA...

    java源码包2

     QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新好友列表,响应用户双击的事件,并得到好友的编号,把聊天界面加入到管理类,设置密码保护等。 Java编写的网页版魔方游戏 内容索引:JAVA...

    java源码包3

     QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新好友列表,响应用户双击的事件,并得到好友的编号,把聊天界面加入到管理类,设置密码保护等。 Java编写的网页版魔方游戏 内容索引:JAVA...

    java源码包4

     QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新好友列表,响应用户双击的事件,并得到好友的编号,把聊天界面加入到管理类,设置密码保护等。 Java编写的网页版魔方游戏 内容索引:JAVA...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新好友列表,响应用户双击的事件,并得到好友的编号,把聊天界面加入到管理类,设置密码保护等。 Java编写的网页版魔方游戏 内容索引:JAVA...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新好友列表,响应用户双击的事件,并得到好友的编号,把聊天界面加入到管理类,设置密码保护等。 Java编写的网页版魔方游戏 内容索引:JAVA...

Global site tag (gtag.js) - Google Analytics