Spanner in Spring Data JPA (GoogleSQL-Dialekt) einbinden

Spring Data JPA, Teil der größeren Spring Data-Familie, erleichtert die Implementierung von JPA-basierten Repositories. Spring Data JPA unterstützt Spanner und eine Vielzahl anderer Datenbanksysteme. Es wird eine Abstraktionsebene zwischen Ihrer Anwendung und Ihrer Datenbank eingefügt, wodurch sich Ihre Anwendung leichter von einem Datenbanksystem in ein anderes portieren lässt.

Spring Data JPA für Spanner GoogleSQL-Dialektdatenbanken einrichten

Sie können Spanner-GoogleSQL-Dialektdatenbanken mit Spring Data JPA über den Open-Source-Spanner-Hibernate-Dialekt (SpannerDialect) einbinden.

Ein Beispiel finden Sie in der vollständigen Beispielanwendung auf GitHub.

Abhängigkeiten

Fügen Sie in Ihrem Projekt Apache Maven-Abhängigkeiten für Spring Data JPA, den Spanner-Hibernate-Dialekt und den von Spanner offiziell unterstützten Open Source-JDBC-Treiber hinzu.

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

Konfiguration

Konfigurieren Sie application.properties für die Verwendung des Spanner-Hibernate-Dialekts und des Spanner-JDBC-Treibers.

# Spanner connection URL.
# - ${PROJECT_ID} Replace with your Google Cloud 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

Vollständige Beispielanwendung

Eine funktionierende Beispielanwendung ist auf GitHub verfügbar.

Nächste Schritte