Bar*_*pan 5 jpa spring-data-jpa
我们正在使用spring数据jpa,在一个地方我们注入了实体管理器.
对于所有其他功能,我们使用jpa-repository但是对于一个功能,我们使用注入的实体管理器.这在应用程序启动后的一段时间内正常工作但开始给出以下错误.经过一段时间后,实体管理器似乎删除了数据库连接.无法复制这个.在实体管理器中是否有任何超时设置,之后它会丢弃数据库连接.
的PersistenceException:
org.hibernate.exception.GenericJDBCException: could not inspect JDBC autocommit mode javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: could not inspect JDBC autocommit mode at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1763) at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1677) at org.hibernate.jpa.internal.QueryImpl.getResultList(QueryImpl.java:458)
Run Code Online (Sandbox Code Playgroud)
实体管理器本身没有这样的东西。但是您的数据库可能会在一段时间后关闭连接,尤其是当它们处于空闲状态或执行大量工作时(数据库可以对连接或事务可能使用的 CPU 时间有一个配额)。
您的连接池是此类意外的另一个可能来源。
有趣的问题是:为什么它只发生在你直接使用的实体管理器上。一种可能的原因是您没有正确释放连接。这可能会使连接池认为它们过时并在一段时间后关闭它们。
为了调试这个,我将首先检查你的连接池配置并激活它的日志记录,这样你就可以看到连接返回时何时分发,以及池可能触发的任何其他特殊事件。
| 归档时间: |
|
| 查看次数: |
9913 次 |
| 最近记录: |