【问题标题】:Spring GetHibernateTemplate() or GetSession()Spring GetHibernateTemplate() 或 GetSession()
【发布时间】:2011-08-25 19:51:06
【问题描述】:

由于对 Spring 方法的理解不正确,我遇到了一个问题 -> GetHibernateTemplate/GetSession。 当我使用本机 sql 查询 [getSession().createSQLQuery(nativeQuery)] 从数据库中获取一些记录时,在我看来存在死锁的情况,在 N 次请求后,数据库连接池耗尽。 这是我在 db "SHOW ENGINE INNODB STATUS" 中检查时看到的示例:

MySQL thread id 1106, query id 1360 localhost 127.0.0.1 test2
---TRANSACTION 0 19491, not started, OS thread id 2960035840

我做错了什么?运行原生 sql 查询的好方法是什么?

【问题讨论】:

    标签: mysql hibernate spring session connection-pooling


    【解决方案1】:

    Spring 透明地处理打开和关闭数据库连接。文档data access chapter 开头的表格显示了您处理的内容和 Spring 处理的内容,后者包括打开和关闭连接。 Spring 本身似乎不太可能是问题所在。

    相反,您可能遇到这种情况的原因有两种:

    1. 您的连接池配置错误
    2. 您没有意识到这一点,但您有一些失控的,或者真正长时间运行/效率低下的查询

    如果您将日志记录进行调试,那将提供更多线索。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-04
      • 1970-01-01
      • 1970-01-01
      • 2018-01-23
      • 2011-09-07
      • 2014-07-15
      • 1970-01-01
      相关资源
      最近更新 更多