Hibernate ORM com o Cloud Spanner

É possível utilizar o Hibernate ORM com o Cloud Spanner usando o Dialeto do Cloud Spanner de código aberto (SpannerDialect). O Dialeto do Cloud Spanner é compatível com o Hibernate ORM 5.4 para o Google Cloud Spanner. O Dialeto do Cloud Spanner produz instruções SQL, DML e DDL para os tipos de entidade e relacionamentos mais comuns usando anotações padrão do Hibernate e do Java Persistence.

Como configurar o Hibernate ORM com o Cloud Spanner

Adicione as dependências do Apache Maven para o núcleo do Hibernate ORM, o Dialeto do Cloud Spanner e o driver JDBC de código aberto do Cloud Spanner oficialmente compatível.

<dependencies>
  <!-- The Hibernate dialect for Spanner dependency -->
  <dependency>
    <groupId>com.google.cloud</groupId>
    <artifactId>google-cloud-spanner-hibernate-dialect</artifactId>
    <version>1.5.1</version>
  </dependency>

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

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

Configure hibernate.cfg.xml para usar o Dialeto do Cloud Spanner e o Driver JDBC do Cloud Spanner.

<!-- Connection settings -->
<property name="hibernate.dialect">com.google.cloud.spanner.hibernate.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>

O arquivo das credenciais JSON da conta de serviço deve estar localizado na variável de ambiente GOOGLE_APPLICATION_CREDENTIALS. O driver usará as credenciais padrão definidas no aplicativo gcloud do SDK do Google Cloud.

Como usar o Hibernate ORM com o Cloud Spanner

Para mais informações sobre os recursos e as recomendações do Hibernate ORM com o Cloud Spanner, consulte a documentação de referência no GitHub.

A seguir