Spring Data JPA 是 Spring Data 大家族的一員,可讓您更輕鬆地實作以 JPA 為基礎的存放區。Spring Data JPA 支援 Spanner 和多種其他資料庫系統。它會在應用程式和資料庫之間新增抽象層,讓應用程式更容易從一個資料庫系統移植到另一個系統。
為 Spanner GoogleSQL 方言資料庫設定 Spring Data JPA
您可以使用開放原始碼的 Spanner Hibernate 方言 (SpannerDialect
),將 Spanner GoogleSQL 方言資料庫與 Spring Data JPA 整合。
如需查看範例,請參閱 GitHub 上的完整可運作範例應用程式。
依附元件
在專案中,為 Spring Data JPA、Spanner Hibernate Dialect 和 Spanner 官方支援的開放原始碼 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 方言和 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 上提交問題,以回報錯誤或提出有關 Hibernate 的問題。
- 將 Spanner 與 Spring Data JPA (PostgreSQL 方言) 整合。