Mengintegrasikan Spanner dengan Spring Data JPA (dialek GoogleSQL)

Spring Data JPA, bagian dari keluarga Spring Data yang lebih besar, mempermudah implementasi repositori berbasis JPA. Spring Data JPA mendukung Spanner dan berbagai sistem database lainnya. Library ini menambahkan lapisan abstraksi antara aplikasi dan database sehingga memudahkan aplikasi Anda untuk 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 Spanner Hibernate Dialect (SpannerDialect) open source.

Untuk melihat contohnya, 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 secara resmi Spanner.

  <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 Spanner Hibernate Dialect 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

Contoh Aplikasi Lengkap

Aplikasi contoh yang berfungsi tersedia di GitHub.

Langkah selanjutnya