Integra Spanner en Hibernate ORM (dialecto de GoogleSQL)

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 de dialecto de GoogleSQL en Hibernate mediante el Dialect de Spanner (SpannerDialect) de código abierto. Spanner es compatible con Hibernate ORM 6.3. Spanner Dialect produce instrucciones de SQL, DML y DDL para los tipos de entidades y las relaciones más comunes mediante las anotaciones estándar de Hibernate y Java Presence.

Cómo configurar Hibernate

En tu proyecto, agrega dependencias de Apache Maven para el núcleo de Hibernate ORM, Spanner Dialect, y el controlador JDBC de código abierto compatible de forma oficial con Spanner.

<dependencies>
  <!-- The Spanner JDBC driver dependency -->
  <dependency>
    <groupId>com.google.cloud</groupId>
    <artifactId>google-cloud-spanner-jdbc</artifactId>
  </dependency>

  <!-- Hibernate core dependency -->
  <dependency>
    <groupId>org.hibernate.orm</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>6.4.4.Final</version>
  </dependency>
</dependencies>

Configura hibernate.cfg.xml para usar el dialecto de Spanner y el controlador JDBC de Spanner.

<!-- Connection settings -->
<property name="hibernate.dialect">org.hibernate.dialect.SpannerDialect</property>
<property name="hibernate.connection.driver_class">com.google.cloud.spanner.jdbc.JdbcDriver</property>
<property name="hibernate.connection.url">jdbc:cloudspanner:/projects/{YOUR_PROJECT_ID}/instances/{YOUR_INSTANCE_ID}/databases/{YOUR_DATABASE_ID}</property>

La ubicación del archivo de credenciales JSON de la cuenta de servicio debe estar en la variable de entorno GOOGLE_APPLICATION_CREDENTIALS. De lo contrario, el controlador usará las credenciales predeterminadas establecidas en la aplicación gcloud de Google Cloud CLI.

Usa Hibernate con Spanner GoogleSQL

Para obtener más información sobre las funciones y recomendaciones de Hibernate, consulta la documentación de referencia en GitHub.

¿Qué sigue?