zoukankan      html  css  js  c++  java
  • 执行session.createSQLQuery(querySql).list()多次后,再次执行没有动静

    问题:

    我的程序是这样的

    String querySql="select A.name,B.name " +
                      " from A inner join B on A.id=B.id " +
                      " where A.s='q' ";
            Session session = this.getSession();
            List<Object>  objList = (List<Object> )session.createSQLQuery(querySql).list();前20次执行都成功了,再次执行时,执行到 session.createSQLQuery(querySql).list()  就没有动静了。

    看了别人的取的session也出现了这样的问题,

    别人的代码是这样的 Session session = this.getHibernateTemplate().getSessionFactory().getCurrentSession();

            session.createSQLQuery(querySql).list();

      出错的原因是能查询的某个对象处于持久化状态或流离状态,需要清空下session缓存(flush()或者clear())。

    所有我一开始执行了this.getSession().flush(),但是没有效果,后来发现我用的session 是 org.springframework.orm.hibernate3.support.HibernateDaoSupport.getSession(), 本来想将它改为this.getHibernateTemplate().getSessionFactory().getCurrentSession(),执行getHibernateTemplate().flush()清缓存,但是发现this.getHibernateTemplate().getSessionFactory()不为null,但是this.getHibernateTemplate().getSessionFactory().getCurrentSession()就是一个获取不到的变量 ,所以这种办法也不行。

    根本原因:

    配置文件里设置了最大的连接数据库的次数。所以,每次到达最大连接次数时,就无法连接和操作数据库了。

    解决:

    一:

    修改这个最大连接数。最好每次使用完数据库时,断开和数据库的连接。

    二:

    其实一开始用的Hql,但是因为关联查询另一个表,我用join方式查询不了,所以改为sql,但是HQL支持where语句里写连接条件的表关联查询,所以最后代码改成 HQL方式查询了。

      List<Object> objList=null;
      String hql="select A.name,B.name " +
                      " from A, B " +
                      " where A.id=B.id and A.s='q' ";
            try {
                objList=(List<Object>)this.getHibernateTemplate().find(hql);
            } catch (RuntimeException e) {
                // TODO: handle exception
               throw e;
            }


     

  • 相关阅读:
    Asp.net文章内容分页
    JQuery文字不间断滚动
    .Net Core利用反射动态加载DLL类库的方法(解决类库不包含Nuget依赖包的问题)
    【Bug】远程登录导致WPF应用程序中的UserControl控件Loaded事件重复触发
    【原创】WPF TreeView带连接线样式的优化(WinFrom风格)
    DataGrid 字体垂直居中
    Elasticsearch.Net
    利用数学归纳法指导编写递归程序
    多种图像格式相互转换工具的开发(附源代码)
    油气大数据分析 第一章 软计算基础(第四、五、六节)
  • 原文地址:https://www.cnblogs.com/lan-writenbook/p/5363746.html
Copyright © 2011-2022 走看看