无法验证新建立的连接

时间:2015-10-13 10:34:03

标签: java spring postgresql spring-boot spring-data-jpa

“无法验证新建立的连接”错误发生。

我用Google搜索并阅读与此错误相关的每个问题。但是无法找到解决方案。

我正在使用spring-boot-starter-data-jpa

它与Postgresql没有任何错误。但我想使用嵌入式数据库!!!

application.properties

#We don't need JMX here - disabling it allows for faster startup
spring.jmx.enabled=false
spring.datasource.testOnBorrow=true
spring.datasource.validationQuery=SELECT 1
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=create-drop

spring.datasource.driver-class-name=org.hsqldb.jdbcDriver
spring.jpa.database-platform=org.hibernate.dialect.HSQLDialect
spring.datasource.url=jdbc:hsqldb:file:${user.home}/db/data;user=sa;password=123;
spring.datasource.username=sa
spring.datasource.password=123

MainApplication 类标题:

@ComponentScan(value = {"db", "app", "ui"})
@EnableJpaRepositories(basePackages = "db")
@EntityScan(basePackages = "db")
@EnableTransactionManagement
@SpringBootApplication

只有当我使用嵌入式数据库(至少是Derby,HSQLDB)并且并非总是如此时,才会抛出此错误。有时它会正常启动,查找并保存实体而不会出现错误,但有时会在等待一段时间后或成功交易后立即发生。

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:13)

您的验证查询是问题所在。虽然SELECT 1 FROM Postgres无法在GO PRINT N'Dropping Permission...'; GO REVOKE EXECUTE ON SCHEMA::[dbo] TO [NonProductionUser] CASCADE; GO PRINT N'Creating Permission...'; GO GRANT EXECUTE ON SCHEMA::[dbo] TO [ProductionUser]; 中使用,但在hsqldb中无效。

有关不同数据库的建议验证查询,请参阅此answer

答案 1 :(得分:2)

在没有验证查询的情况下尝试它。如果HSQLDB驱动程序符合JDBC4,则应使用并使用Connection.isValid(int timeout)方法。