Integre o Spanner com o Hibernate ORM (dialeto GoogleSQL)

O Hibernate é uma ferramenta de mapeamento objeto-relacional para a linguagem de programação Java. Fornece uma framework para mapear um modelo de domínio orientado a objetos para uma base de dados relacional.

Pode integrar bases de dados com dialeto GoogleSQL com o Hibernate através do dialeto do Spanner (SpannerDialect) de código aberto. O Spanner é compatível com o Hibernate ORM 6.x. O dialeto do Spanner produz declarações SQL, DML e DDL para a maioria dos tipos de entidades e relações comuns através das anotações padrão do Hibernate e da persistência Java.

Configure a hibernação

No seu projeto, adicione dependências do Apache Maven para o núcleo do Hibernate ORM, Spanner Dialect, e o controlador JDBC de código aberto suportado oficialmente pelo 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>

Configure o hibernate.cfg.xml para usar o dialeto do Spanner e o controlador JDBC do 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>

A localização do ficheiro de credenciais JSON da conta de serviço deve estar na variável de ambiente GOOGLE_APPLICATION_CREDENTIALS. Caso contrário, o controlador usa as credenciais predefinidas definidas na aplicação gcloud Google Cloud CLI.

Use o Hibernate com o GoogleSQL do Spanner

Para mais informações sobre as funcionalidades e as recomendações para o Hibernate, consulte a documentação de referência no GitHub.

O que se segue?