Spring Data JPA, Teil der größeren Spring Data-Familie, vereinfacht die Implementierung von JPA-basierten Repositories. Spring Data JPA unterstützt Spanner und eine Vielzahl anderer Datenbanksysteme. Es fügt eine Abstraktionsebene zwischen Ihrer Anwendung und Ihrer Datenbank hinzu, die das Portieren Ihrer Anwendung von einem Datenbanksystem in ein anderes erleichtert.
Spring Data JPA für GoogleSQL-Dialekt-Datenbanken für Spanner einrichten
Sie können Spanner-Datenbanken mit GoogleSQL-Dialekt in Spring Data JPA mithilfe des Open-Source-Spanner Hibernate-Dialekts (SpannerDialect
) einbinden.
Ein Beispiel finden Sie in der vollständigen funktionierenden Beispielanwendung auf GitHub.
Abhängigkeiten
Fügen Sie in Ihrem Projekt Apache Maven-Abhängigkeiten für Spring Data JPA, den Spanner Hibernate Dialect und den offiziell von Spanner 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 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
Vollständige Beispielanwendung
Auf GitHub ist eine funktionierende Beispielanwendung verfügbar.
Nächste Schritte
- Weitere Informationen zu Spring Data JPA
- Hibernate ORM
- Sehen Sie sich das Repository für Spanner Dialect auf GitHub an.
- Melden Sie ein GitHub-Problem, um einen Fehler zu melden oder eine Frage zu Hibernate zu stellen.
- Spanner mit Spring Data JPA (PostgreSQL-Dialekt) einbinden