Spring GetHibernateTemplate()或GetSession()

时间:2011-08-25 19:51:07

标签: mysql hibernate spring session connection-pooling

由于对Spring方法的不正确理解,我面临一个问题 - > GetHibernateTemplate /的getSession。 当我使用本机sql查询[getSession()。createSQLQuery(nativeQuery)]从数据库中获取一些记录时,在我看来存在死锁类型的情况,并且在N个请求之后,db连接池耗尽。 这是我在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查询的好方法?

1 个答案:

答案 0 :(得分:0)

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

相反,以下是您可能遇到的情况的两种可能性:

  1. 您的连接池以某种方式配置错误
  2. 你没有意识到这一点,但是你有一些失控,或者是长时间运行/效率低下的问题
  3. 如果您将日志记录调试,那将提供更多线索。