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
完整示例应用
有效的示例应用是 。
后续步骤
- 详细了解 Spring Data JPA。
- 详细了解 Hibernate ORM。
- 查看代码库 GitHub 上的 Spanner Dialect。
- 提交 GitHub 问题以报告 bug 或咨询问题 关于 Hibernate 的问题。
- 将 Spanner 与 Spring Data JPA(PostgreSQL 方言)集成。