Hibernate es una herramienta de asignación relacional de objetos para el lenguaje de programación Java. Proporciona un framework para asignar un modelo de dominio orientado a objetos a una base de datos relacional.
Puedes integrar bases de datos con dialecto de GoogleSQL en Hibernate. Spanner es compatible con Hibernate ORM 6.x y 7.x. Tanto el dialecto integrado como el de código abierto generan instrucciones de SQL, DML y DDL para los tipos de entidades y relaciones más comunes con anotaciones estándar de Hibernate y Java Persistence.
Usa la integración de Hibernate integrada (Hibernate ORM 7.4 y versiones posteriores)
A partir de Hibernate ORM 7.4, Hibernate incluye un dialecto integrado para Spanner (org.hibernate.dialect.SpannerDialect).
Recomendamos que los proyectos nuevos usen este dialecto integrado, ya que no requiere agregar la dependencia externa google-cloud-spanner-hibernate-dialect.
El dialecto integrado carece de algunas funciones y optimizaciones que están disponibles en el dialecto de Spanner de código abierto.
Para usar el dialecto integrado, agrega las dependencias de Maven para el núcleo de Hibernate ORM y el controlador JDBC de Spanner al archivo pom.xml de tu proyecto.
Para encontrar las versiones más recientes de estas dependencias, consulta las versiones de Hibernate ORM y las versiones del controlador JDBC de Spanner:
<dependencies>
<!-- Hibernate ORM Core -->
<dependency>
<groupId>org.hibernate.orm</groupId>
<artifactId>hibernate-core</artifactId>
<version>7.4.0.Final</version>
</dependency>
<!-- Cloud Spanner JDBC Driver -->
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-spanner-jdbc</artifactId>
<version>2.40.0</version>
</dependency>
</dependencies>
Configura el archivo hibernate.properties de tu proyecto (que suele estar ubicado en el directorio src/main/resources) para usar el dialecto de Spanner integrado:
hibernate.dialect=org.hibernate.dialect.SpannerDialect
hibernate.connection.driver_class=com.google.cloud.spanner.jdbc.JdbcDriver
hibernate.connection.url=jdbc:cloudspanner:/projects/YOUR-PROJECT/instances/YOUR-INSTANCE/databases/YOUR-DATABASE
Para autenticarse con Spanner, el controlador JDBC requiere credenciales. Configura la variable de entorno GOOGLE_APPLICATION_CREDENTIALS en la ruta de acceso de tu archivo de credenciales JSON de la cuenta de servicio. De lo contrario, el controlador usará las credenciales predeterminadas establecidas en la aplicación gcloud de Google Cloud CLI.
Usa el dialecto de Spanner de código abierto
En el caso de los proyectos que usan versiones anteriores de Hibernate (6.x o 7.x anteriores a 7.4), o si necesitas funciones y optimizaciones que aún no son compatibles con el dialecto integrado, puedes usar el dialecto de Spanner de código abierto.
Para usar el dialecto de código abierto, agrega las dependencias de Maven al archivo pom.xml de tu proyecto:
Configura el archivo hibernate.properties de tu proyecto para usar el dialecto y el controlador JDBC de Spanner de código abierto:
hibernate.dialect=com.google.cloud.spanner.hibernate.SpannerDialect
hibernate.connection.driver_class=com.google.cloud.spanner.jdbc.JdbcDriver
hibernate.connection.url=jdbc:cloudspanner:/projects/YOUR-PROJECT/instances/YOUR-INSTANCE/databases/YOUR-DATABASE
Para obtener más información sobre las funciones y recomendaciones de Hibernate cuando se usa este dialecto, consulta la documentación de referencia en GitHub.
¿Qué sigue?
- Verifica los ejemplos de código con Hibernate y Spanner.
- Prueba el codelab de Spanner con Hibernate ORM.
- 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.
- Obtén más información sobre Apache Maven.
- Obtén más información para integrar Spanner con Hibernate ORM (dialecto de PostgreSQL).