我正在使用在数据库中存储信息的Spring BOOT应用程序。我收到错误消息:


  org.springframework.transaction.CannotCreateTransactionException:无法打开JPA EntityManager进行交易


我尝试在INTERNET上搜索,但找不到任何答案。当我重新启动jar时,它可以正常工作-不会出现错误。这每天都会发生,我必须每天重新启动jar。


  例外情况:
      org.springframework.transaction.CannotCreateTransactionException:无法打开JPA EntityManager进行事务;嵌套的异常是javax.persistence.PersistenceException:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:成功从服务器成功接收到的最后一个数据包是44,382,666毫秒之前。成功发送到服务器的最后一个数据包是44,382,666毫秒之前。大于服务器配置的值“ wait_timeout”。在应用程序中使用该连接之前,应该考虑使连接有效性到期和/或对其进行测试,或者增加服务器为客户端超时配置的值,或者使用Connector / J连接属性“ autoReconnect = true”来避免此问题。


它计划每天运行十分钟。

我已尝试缩短时间-按计划在特定时间运行,但仍然没有成功。

还尝试了autoReconnect = true,在数据库url中提供了端口号。

最佳答案

似乎this is the answer

spring.datasource.testOnBorrow=true
spring.datasource.testWhileIdle = true
spring.datasource.timeBetweenEvictionRunsMillis = 3600000
spring.datasource.validationQuery=SELECT 1

关于java - 无法打开JPA实体管理器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55501608/

10-09 00:31