Spring Data JPA, parte della famiglia più ampia di Spring Data, semplifica l'implementazione di 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, semplificando il porting da un sistema di database a un altro.
Configura Spring Data JPA per i database con dialetto GoogleSQL di Spanner
Puoi integrare i database con dialetto GoogleSQL di Spanner con
Spring Data JPA utilizzando il dialetto Hibernate
di Spanner (SpannerDialect) open source.
Per vedere un esempio, consulta l'applicazione di esempio funzionante completa su GitHub.
Dipendenze
Nel tuo progetto, aggiungi le dipendenze di 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 per utilizzare il dialetto Hibernate di Spanner e il driver JDBC di Spanner.
# 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
Applicazione di esempio completa
Un'applicazione di esempio funzionante è disponibile su GitHub.
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.
- Integra Spanner con Spring Data JPA (dialetto PostgreSQL).