Spring Data JPA, parte de la gran familia Spring Data, más fáciles de implementar repositorios basados en JPA. Spring Data JPA es compatible con Spanner y otros sistemas de bases de datos. Agrega una capa de abstracción entre la aplicación y la base de datos que facilita la portabilidad de la aplicación de un sistema de base de datos a otro.
Configura Spring Data JPA para las bases de datos de Spanner de GoogleSQL
Puedes integrar las bases de datos de dialectos de GoogleSQL de Spanner con Spring Data JPA a través del
Spanner Hibernate Dialect de código abierto
(SpannerDialect
).
Para ver un ejemplo, consulta la guía completa aplicación de ejemplo funcional GitHub.
Dependencias
En tu proyecto, agrega dependencias de Apache Maven para Spring Data JPA, Spanner Hibernate Dialect y el controlador JDBC de código abierto compatible oficialmente con 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>
Configuración
Configura application.properties
para usar Hibernate de Spanner
Dialect y el controlador de JDBC de 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
Aplicación de muestra completa
Una aplicación de ejemplo funcional es disponibles en GitHub.
¿Qué sigue?
- Obtén más información sobre Spring Data JPA.
- Obtén más información sobre Hibernate ORM.
- Consulta el repositorio de Spanner Dialect en GitHub.
- Presenta un problema en GitHub para informar un error o hacer una pregunta sobre Hibernate.
- Integra Spanner con Spring Data JPA (dialecto PostgreSQL).