Spring Data JPA, che fa parte della più grande famiglia Spring Data, semplifica l'implementazione di repository basati su JPA. Spring Data JPA supporta Spanner e una vasta gamma di altri sistemi di database. Aggiunge un livello di astrazione tra la tua applicazione e il tuo database che semplifica il porting da un sistema di database a un altro.
Configurare Spring Data JPA per i database con dialetto GoogleSQL di Spanner
Puoi integrare i database con il dialetto GoogleSQL di Spanner con Spring Data JPA utilizzando il dialetto Hibernate di Spanner (SpannerDialect
) open source.
Per un esempio, consulta la completa applicazione di esempio funzionante su GitHub.
Dipendenze
Nel progetto, aggiungi le dipendenze Apache Maven per Spring Data JPA, Spanner Hibernate Dialect e il driver JDBC open source supportato ufficialmente da 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>
Configurazione
Configura application.properties
in modo da utilizzare il dialetto Hibernate
Spanner e il 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
Applicazione di esempio completa
Su GitHub è disponibile un'applicazione di esempio funzionante.
Passaggi successivi
- Scopri di più su Spring Data JPA.
- Scopri di più su Hibernate ORM.
- Visualizza il repository per Spanner Dialect su GitHub.
- Invia una segnalazione su GitHub per segnalare un bug o porre una domanda su Hibernate.
- Esegui l'integrazione di Spanner con Spring Data JPA (dialetto PostgreSQL).