java - Hibernate 'Cannot Release Connection' 异常?

标签 java hibernate jakarta-ee

我在我的应用程序中使用了 Spring DATA JPA,它是 hibernate 的包装器。 在一次与数据库交互时,我得到了期望

Caused by: org.hibernate.exception.GenericJDBCException: Cannot release connection
    at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:140)
    at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:128)
    at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
    at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:52)
    at org.hibernate.jdbc.ConnectionManager.closeConnection(ConnectionManager.java:478)
    at org.hibernate.jdbc.ConnectionManager.aggressiveRelease(ConnectionManager.java:429)
    at org.hibernate.jdbc.ConnectionManager.afterStatement(ConnectionManager.java:304)
    at org.hibernate.jdbc.AbstractBatcher.closePreparedStatement(AbstractBatcher.java:572)
    at org.hibernate.jdbc.AbstractBatcher.closeStatement(AbstractBatcher.java:291)
    at org.hibernate.jdbc.AbstractBatcher.closeQueryStatement(AbstractBatcher.java:307)
    at org.hibernate.jdbc.AbstractBatcher.closeQueryStatement(AbstractBatcher.java:234)
    at org.hibernate.loader.Loader.getResultSet(Loader.java:1967)
    at org.hibernate.loader.Loader.doQuery(Loader.java:802)
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:274)
    at org.hibernate.loader.Loader.doList(Loader.java:2533)
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2276)
    at org.hibernate.loader.Loader.list(Loader.java:2271)
    at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:452)
    at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:363)
    at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196)
    at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1268)
    at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102)
    at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:246)

hibernate 中的连接处理是我们没有显式释放或关闭连接的内部处理。

我不明白如何解决这个问题..

最佳答案

我终于找到了解决方案。我通过为数据库设置一些额外的配置解决了这个问题。

这里是详细链接:http://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html

简而言之(“testOnBorrow”、“testOnReturn”、“testWhileIdle”)这些是我用来删除上述异常的参数。 上面的异常显示在某个时间点我们的数据库连接对象以某种方式失效。但是这些设置可以帮助我们不断检查我们的数据库连接。

干杯:)

关于java - Hibernate 'Cannot Release Connection' 异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9991635/

相关文章:

java - Seam中 `wire()`和 `isWired()`的用途是什么?

java - 如何使用扫描仪检查Zip文件是否由CSV或其他类型的JAVA文件压缩?

java - 在 java 中使用 univocity 库解析 CSV

Java Eclipse 复选框

java - Hibernate:如何级联删除?

hibernate - HQL:如果有时为空,如何筛选属性

java - 从 JFrame 获取新的绑定(bind)值 (Java)

java - Jackson双向嵌套对象设置

java - 如何在 Glassfish 服务器上部署同一应用程序的多个副本?

java - 无法使用 WAS7 在 Eclipse Gallileo IDE 中启动服务器