Integrar Spanner con Hibernate ORM (dialecto GoogleSQL)

Hibernate es una herramienta de asignación objeto-relacional para el lenguaje de programación Java. Proporciona un marco para asignar un modelo de dominio orientado a objetos a una base de datos relacional.

Puedes integrar bases de datos con dialecto GoogleSQL con Hibernate mediante el dialecto de Spanner (SpannerDialect) de código abierto. Spanner es compatible con Hibernate ORM 6.x. Spanner Dialect genera instrucciones de SQL, DML y DDL para la mayoría de los tipos de entidades y relaciones comunes mediante las anotaciones estándar de Hibernate y Java Persistence.

Configurar Hibernación

En tu proyecto, añade las dependencias de Apache Maven para el núcleo de Hibernate ORM, el dialecto de Spanner y el controlador JDBC de código abierto compatible oficialmente 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 que use 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 definidas en la aplicación gcloud de la interfaz de línea de comandos de Google Cloud.

Usar Hibernate con Spanner GoogleSQL

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

Siguientes pasos