将 Spanner 与 Spring Data JPA(GoogleSQL 方言)集成

Spring Data JPA 是更大的 Spring Data 系列的一部分,使 更轻松地实现基于 JPA 的代码库。Spring Data JPA 支持 Spanner 以及各种其他数据库系统它会添加一个抽象层,即 以及使应用更易于移植 从一个数据库系统复制到另一个数据库系统。

为 Spanner GoogleSQL 方言数据库设置 Spring Data JPA

您可以使用 开源 Spanner Hibernate Dialect (SpannerDialect).

要查看示例,请参阅 可运行的示例应用 GitHub。

依赖项

在项目中,为 Spring Data JPA 添加 Apache Maven 依赖项。 Spanner Hibernate Dialect, 以及 Spanner 官方支持的开源 JDBC 驱动程序

  <dependencies>
    <!-- Spring Data JPA -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <!-- Hibernate Dialect and JDBC Driver dependencies-->
    <dependency>
      <groupId>com.google.cloud</groupId>
      <artifactId>google-cloud-spanner-hibernate-dialect</artifactId>
    </dependency>
    <dependency>
      <groupId>com.google.cloud</groupId>
      <artifactId>google-cloud-spanner-jdbc</artifactId>
    </dependency>
  </dependencies>

配置

application.properties 配置为使用 Spanner Hibernate Dialect 和 Spanner JDBC 驱动程序。

# Spanner connection URL.
# - ${PROJECT_ID} Replace with your GCP project ID
# - ${INSTANCE_ID} Replace with your Spanner instance ID
# - ${DATABASE_NAME} Replace with the name of your Spanner database that you created inside your Spanner instance

spring.datasource.url=jdbc:cloudspanner:/projects/${PROJECT_ID}/instances/${INSTANCE_ID}/databases/${DATABASE_NAME}

# Specify the Spanner JDBC driver.
spring.datasource.driver-class-name=com.google.cloud.spanner.jdbc.JdbcDriver

# Specify the Spanner Hibernate dialect.
spring.jpa.properties.hibernate.dialect=com.google.cloud.spanner.hibernate.SpannerDialect

spring.jpa.hibernate.ddl-auto=update

# Settings to enable batching statements for efficiency
spring.jpa.properties.hibernate.jdbc.batch_size=100
spring.jpa.properties.hibernate.order_inserts=true

# You can display SQL statements and stats for debugging if needed.
spring.jpa.properties.hibernate.show_sql=true
spring.jpa.properties.hibernate.format_sql=true

完整示例应用

有效的示例应用是 。

后续步骤