Intégrer Spanner à Hibernate ORM (dialecte GoogleSQL)

Hibernate est un outil de mappage objet-relationnel pour le langage de programmation Java. Il fournit un framework permettant de mapper un modèle de domaine orienté objet sur une base de données relationnelle.

Vous pouvez intégrer des bases de données GoogleSQL à Hibernate à l'aide du dialecte Spanner Open Source (SpannerDialect). Spanner est compatible avec Hibernate ORM 6.x. Le dialecte Spanner génère des instructions SQL, LMD et LDD pour la plupart des types d'entités et des relations avec les annotations Hibernate et Java Persistence standards.

Configurer Hibernate

Dans votre projet, ajoutez les dépendances Apache Maven pour le cœur Hibernate ORM, le dialecte Spanner et le pilote JDBC Open Source officiellement accepté pour 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>

Configurez hibernate.cfg.xml de sorte à utiliser le dialecte Spanner et le pilote JDBC 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>

L'emplacement du fichier d'identifiants JSON du compte de service doit se trouver dans la variable d'environnement GOOGLE_APPLICATION_CREDENTIALS. Dans le cas contraire, le pilote utilise les identifiants par défaut définis dans l'application gcloud de Google Cloud CLI.

Utiliser Hibernate avec Spanner GoogleSQL

Pour en savoir plus sur les fonctionnalités et les recommandations relatives à Hibernate, consultez la documentation de référence sur GitHub.

Étape suivante