Spring Data ファミリーの一部である Spring Data JPA を使用すると、JPA ベースのリポジトリを簡単に実装できます。Spring Data JPA は、Spanner や他の幅広いデータベース システムをサポートしています。アプリケーションとデータベースの間に抽象化レイヤが追加され、アプリケーションがデータベース間で簡単に移行できるようになります。
Spanner の GoogleSQL 言語データベースに Spring Data JPA を設定する
オープンソースの Spanner Hibernate 言語(SpannerDialect
)を使用して、Spanner GoogleSQL 言語データベースを Spring Data JPA と統合できます。
サンプルについては、GitHub の完全な作業用サンプル アプリケーションをご覧ください。
依存関係
プロジェクトで、Spring Data JPA、Spanner Hibernate 言語、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>
構成
Spanner Hibernate 言語と Spanner JDBC ドライバを使用するように application.properties
を構成します。
# 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 言語)と統合する。