Spring Data JPA 是更大的 Spring Data 系列的一部分,使 更轻松地实现基于 JPA 的代码库。Spring Data JPA 支持 Spanner 以及各种其他数据库系统它会在应用和数据库之间添加一个抽象层,以便更轻松地将应用从一个数据库系统移植到另一个数据库系统。
为 Spanner GoogleSQL 方言数据库设置 Spring Data JPA
您可以使用
开源 Spanner Hibernate Dialect
(SpannerDialect
).
要查看示例,请参阅 可运行的示例应用 GitHub。
依赖项
在项目中,为 Spring Data JPA、Spanner Hibernate Dialect 和 Spanner 官方支持的 Open Source JDBC 驱动程序添加 Apache Maven 依赖项。
<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
完整示例应用
GitHub 上提供了可正常运行的示例应用。
后续步骤
- 详细了解 Spring Data JPA。
- 详细了解 Hibernate ORM。
- 查看代码库 GitHub 上的 Spanner Dialect。
- 提交 GitHub 问题以报告 bug 或提出有关 Hibernate 的问题。
- 将 Spanner 与 Spring Data JPA(PostgreSQL 方言)集成。