Mengintegrasikan Spanner dengan Spring Data JPA (dialek GoogleSQL)

Spring Data JPA, bagian dari keluarga Spring Data yang lebih besar, memudahkan implementasi repositori berbasis JPA. Spring Data JPA mendukung Spanner dan berbagai sistem database lainnya. Library ini menambahkan lapisan abstraksi antara aplikasi dan database yang membuat aplikasi Anda lebih mudah di-port dari satu sistem database ke sistem database lainnya.

Menyiapkan Spring Data JPA untuk database dialek GoogleSQL Spanner

Anda dapat mengintegrasikan database dialek GoogleSQL Spanner dengan Spring Data JPA menggunakan Dialek Hibernate Spanner open source (SpannerDialect).

Untuk melihat contoh, lihat aplikasi contoh yang berfungsi lengkap di GitHub.

Dependensi

Dalam project Anda, tambahkan dependensi Apache Maven untuk Spring Data JPA, Spanner Hibernate Dialect, dan driver JDBC Open Source yang didukung Spanner secara resmi.

  <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>

Konfigurasi

Konfigurasikan application.properties untuk menggunakan Dialect Hibernate Spanner dan Driver JDBC Spanner.

# 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

Aplikasi Contoh Lengkap

Aplikasi contoh yang berfungsi tersedia di GitHub.

Langkah selanjutnya