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 à une base de données relationnelle.

Vous pouvez intégrer des bases de données de dialecte GoogleSQL à Hibernate. Spanner est compatible avec Hibernate ORM 6.x et 7.x. Le dialecte intégré et le dialecte Open Source génèrent 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.

Utiliser l'intégration Hibernate intégrée (Hibernate ORM 7.4+)

À partir d'Hibernate ORM 7.4, Hibernate inclut un dialecte intégré pour Spanner (org.hibernate.dialect.SpannerDialect).

Nous vous recommandons d'utiliser ce dialecte intégré pour les nouveaux projets, car il ne nécessite pas l'ajout de la dépendance externe google-cloud-spanner-hibernate-dialect. Le dialecte intégré ne dispose pas de certaines fonctionnalités et optimisations disponibles dans le dialecte Spanner Open Source.

Pour utiliser le dialecte intégré, ajoutez les dépendances Maven pour le cœur Hibernate ORM et le pilote JDBC Spanner au fichier pom.xml de votre projet. Pour trouver les dernières versions de ces dépendances, consultez les versions d'Hibernate ORM et les versions du pilote JDBC Spanner :

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

  <!-- Cloud Spanner JDBC Driver -->
  <dependency>
    <groupId>com.google.cloud</groupId>
    <artifactId>google-cloud-spanner-jdbc</artifactId>
    <version>2.40.0</version>
  </dependency>
</dependencies>

Configurez le fichier hibernate.properties de votre projet (généralement situé dans le répertoire src/main/resources) pour utiliser le dialecte Spanner intégré :

hibernate.dialect=org.hibernate.dialect.SpannerDialect
hibernate.connection.driver_class=com.google.cloud.spanner.jdbc.JdbcDriver
hibernate.connection.url=jdbc:cloudspanner:/projects/YOUR-PROJECT/instances/YOUR-INSTANCE/databases/YOUR-DATABASE

Pour s'authentifier auprès de Spanner, le pilote JDBC nécessite des identifiants. Définissez la variable d'environnement GOOGLE_APPLICATION_CREDENTIALS sur le chemin d'accès au fichier d'identifiants JSON de votre compte de service. Sinon, le pilote utilise les identifiants par défaut définis dans l'application gcloud du Google Cloud CLI.

Utiliser le dialecte Spanner Open Source

Pour les projets utilisant des versions antérieures d'Hibernate (6.x ou 7.x avant 7.4) ou si vous avez besoin de fonctionnalités et d'optimisations qui ne sont pas encore compatibles avec le dialecte intégré , vous pouvez utiliser le dialecte Spanner Open Source .

Pour utiliser le dialecte Open Source, ajoutez les dépendances Maven au fichier pom.xml de votre projet :

<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 le fichier hibernate.properties de votre projet pour utiliser le dialecte Spanner Open Source et le pilote JDBC :

hibernate.dialect=com.google.cloud.spanner.hibernate.SpannerDialect
hibernate.connection.driver_class=com.google.cloud.spanner.jdbc.JdbcDriver
hibernate.connection.url=jdbc:cloudspanner:/projects/YOUR-PROJECT/instances/YOUR-INSTANCE/databases/YOUR-DATABASE

Pour en savoir plus sur les fonctionnalités et les recommandations concernant Hibernate lorsque vous utilisez ce dialecte, consultez la documentation de référence sur GitHub.

Étape suivante

  • Consultez des exemples de code utilisant Hibernate avec Spanner.
  • Essayez l'atelier de programmation Spanner avec Hibernate ORM codelab.
  • Approfondissez vos connaissances sur Hibernate ORM.
  • Affichez le dépôt du dialecte Spanner sur GitHub.
  • Ouvrez une demande sur GitHub pour signaler un bug ou poser une question sur Hibernate.
  • Consultez des informations supplémentaires sur Apache Maven.
  • Découvrez comment intégrer Spanner à Hibernate ORM (dialecte PostgreSQL) .