Integrare Spanner con Spring Data JPA (dialetto GoogleSQL)

Spring Data JPA, parte della più ampia famiglia di dati Spring Data, semplifica l'implementazione dei repository basati su JPA. Spring Data JPA supporta Spanner e un'ampia gamma di altri sistemi di database. Aggiunge un livello di astrazione tra l'applicazione e il database per semplificare la portabilità dell'applicazione da un sistema di database all'altro.

Configura Spring Data JPA per database di dialetti GoogleSQL Spanner

Puoi integrare database di dialetti GoogleSQL Spanner con Spring Data JPA utilizzando l'open source Spanner Hibernate Dialect (SpannerDialect).

Per un esempio, consulta l'applicazione di esempio funzionante su GitHub.

Dipendenze

Nel progetto, aggiungi le dipendenze di Apache Maven per Spring Data JPA, Spanner Hibernate Dialect e il driver JDBC open source di Spanner ufficialmente supportato.

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

Configurazione

Configura application.properties per l'utilizzo del dialetto Iniezione di Spanner e del driver JDBC di 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

Applicazione di esempio completa

Su GitHub è disponibile un'applicazione di esempio funzionante.

Passaggi successivi