Spring Data JPA, che fa parte della più ampia famiglia 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 che semplifica la porta dell'applicazione da un sistema di database all'altro.
Configura JPA di Spring Data per i database di dialetti GoogleSQL di Spanner
Puoi integrare i database di dialetti GoogleSQL di Spanner con JPA di Spring Data utilizzando il
dialetto open source Spanner Hibernate Dialect
(SpannerDialect
).
Per un esempio, consulta l'applicazione di esempio funzionante su GitHub.
Dipendenze
Nel tuo progetto, aggiungi le dipendenze Apache Maven per Spring Data JPA, Spanner Hibernate Dialect e il driver JDBC open source ufficialmente supportato 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
per usare Spanner Hibernate
Dialect e il 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
Esempio di applicazione completo
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 un problema su GitHub per segnalare un bug o fare una domanda su Hibernate.
- Integra Spanner con Spring Data JPA (dialetto PostgreSQL).