Spring Data JPA, che fa parte della più grande famiglia Spring Data, semplifica l'implementazione di repository basati su JPA. JPA di Spring Data 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 di dialetti GoogleSQL di Spanner con JPA di Spring Data utilizzando il metodo
Spanner Hibernate Dialect open source
(SpannerDialect
).
Per un esempio, consulta la completa applicazione di esempio funzionante su GitHub.
Dipendenze
Nel tuo progetto, aggiungi le dipendenze Apache Maven per Spring Data JPA, Spanner Hibernate Dialetto, e Spanner supportava ufficialmente il driver JDBC open source.
<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
Esempio di applicazione completo
Un'applicazione di esempio funzionante disponibili su GitHub.
Passaggi successivi
- Scopri di più su JPA di Spring Data.
- Scopri di più su Hibernate ORM.
- Visualizza il repository per Spanner Dialect su GitHub.
- Segnala un problema su GitHub per segnalare un bug o inviare una richiesta su Hibernate.
- Integra Spanner con Spring Data JPA (dialetto PostgreSQL).