Spring Data JPA, qui fait partie de la famille plus large Spring Data, en plus facile à implémenter dans les dépôts basés sur JPA. Spring Data JPA est compatible avec Spanner et un large éventail d'autres systèmes de base de données. Il ajoute une couche d'abstraction entre votre application et votre base de données, ce qui facilite le portage de votre application d'un système de base de données à un autre.
Configurer Spring Data JPA pour les bases de données Spanner au format GoogleSQL
Vous pouvez intégrer des bases de données Spanner basées sur GoogleSQL à Spring Data JPA à l'aide de la méthode
open source dialecte hibernate de Spanner
(SpannerDialect
).
Pour voir un exemple, reportez-vous aux application exemple fonctionnelle sur GitHub.
Dépendances
Dans votre projet, ajoutez des dépendances Apache Maven pour Spring Data JPA. Dialecte hibernate Spanner, et le pilote JDBC Open Source officiellement compatible avec 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>
Configuration
Configurez application.properties
de sorte à utiliser le dialecte Hibernate Spanner et le pilote 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
Exemple d'application complète
Un exemple d'application fonctionnel disponible sur GitHub.
Étape suivante
- En savoir plus sur Spring Data JPA
- Approfondissez vos connaissances sur Hibernate ORM.
- Affichez le dépôt du dialecte Spanner sur GitHub.
- Signalez un problème sur GitHub pour signaler un bug ou poser une question à un concernant Hibernate.
- Intégrez Spanner à Spring Data JPA (dialecte PostgreSQL).