我正在尝试将现有的Spring Boot应用程序从使用Postgres迁移到GCP Spanner。
我正在使用以下Cloud Spanner JDBC驱动程序和Hibernate方言:
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-spanner-hibernate-dialect</artifactId>
<version>0.1.0</version>
</dependency>
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-spanner-jdbc</artifactId>
<version>1.7.0</version>
</dependency>
还配置了以下属性:
spring.datasource.url=jdbc:cloudspanner:/projects/YOUR_PROJECT_ID/instances/demo/databases/demo
spring.datasource.driver-class-name=com.google.cloud.spanner.jdbc.JdbcDriver
spring.jpa.database-platform=com.google.cloud.spanner.hibernate.SpannerDialect
但是,当运行该应用程序时,它挂起并试图获得池连接:
o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 2729 ms
com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...
com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Driver does not support get/set network timeout for connections. (Network timeout is not supported)
HikariCP是否支持GCP扳手?
它应该可以直接使用,在您提供的设置中我看不到任何直接错误的信息。因此,我的猜测是,这里还有其他一些导致问题的原因(依赖性,其他设置等)。您使用的是Hibernate方言和JDBC驱动程序的较旧版本,但这不是问题。
一个可能的问题是您的系统未使用默认的Google Cloud凭据进行设置。我注意到您的JDBC URL不包含任何凭据,这意味着它将回退到环境的默认值。如果找不到它,我会期望一个错误,但这可能是引起问题的原因。
唯一的official JDBC是: