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;
            }


     

  • 相关阅读:
    ios代码大全
    MYSQL数据库之如何在已经建立好表之后重构数据表
    关于cookie在一个页面设置但是在另外一个页面获取不到的原因
    cookie的那点事儿
    关于a标签不能调用js方法的小细节,你注意到了么?
    关于mysql预处理技术的一点小心得
    关于delete使用limit的一些注意事项
    DP1 等分连续1-N个数的划分种数
    Spring 编程式事务和声明式事务管理
    java https client信任所有证书
  • 原文地址:https://www.cnblogs.com/lan-writenbook/p/5363746.html
Copyright © 2011-2022 走看看