Spanner in Hibernate ORM (GoogleSQL-Dialekt) einbinden

Hibernate ist ein Tool für die objektrelationale Zuordnung für die Programmiersprache Java. Es bietet ein Framework für die Zuordnung eines objektorientierten Domänenmodells zu einer relationalen Datenbank.

Sie können GoogleSQL-Dialektdatenbanken in Hibernate einbinden. Cloud Spanner ist mit Hibernate ORM 6.x und 7.x kompatibel. Sowohl der integrierte als auch der Open-Source-Dialekt erstellen SQL-, DML- und DDL-Anweisungen für die gängigsten Entitätstypen und -beziehungen. Dazu werden standardmäßige Hibernate- und Java Persistence-Anmerkungen verwendet.

Integrierte Hibernate-Integration verwenden (Hibernate ORM 7.4+)

Ab Hibernate ORM 7.4 enthält Hibernate einen integrierten Dialekt für Cloud Spanner (org.hibernate.dialect.SpannerDialect).

Wir empfehlen, diesen integrierten Dialekt für neue Projekte zu verwenden, da die externe Abhängigkeit google-cloud-spanner-hibernate-dialect nicht hinzugefügt werden muss. Dem integrierten Dialekt fehlen einige Funktionen und Optimierungen, die im Open-Source-Dialekt für Cloud Spanner verfügbar sind.

Wenn Sie den integrierten Dialekt verwenden möchten, fügen Sie der Datei pom.xml Ihres Projekts die Maven-Abhängigkeiten für den Hibernate ORM-Kern und den Cloud Spanner-JDBC-Treiber hinzu. Die neuesten Versionen dieser Abhängigkeiten finden Sie in den Hibernate ORM-Releases und den Cloud Spanner-JDBC-Treiber-Releases:

<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>

Konfigurieren Sie die Datei hibernate.properties Ihres Projekts (in der Regel im Verzeichnis src/main/resources), um den integrierten Cloud Spanner-Dialekt zu verwenden:

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

Für die Authentifizierung bei Cloud Spanner benötigt der JDBC-Treiber Anmeldedaten. Legen Sie die GOOGLE_APPLICATION_CREDENTIALS Umgebungsvariable auf den Pfad der JSON-Datei mit den Anmeldedaten Ihres Dienstkontos fest. Andernfalls verwendet der Treiber die Standardanmeldedaten, die in der Google Cloud CLI-Anwendung gcloud festgelegt sind.

Open-Source-Dialekt für Cloud Spanner verwenden

Für Projekte mit älteren Versionen von Hibernate (6.x oder 7.x vor 7.4) oder wenn Sie Funktionen und Optimierungen benötigen, die vom integrierten Dialekt noch nicht unterstützt werden, können Sie den Open-Source-Dialekt für Cloud Spanner verwenden.

Wenn Sie den Open-Source-Dialekt verwenden möchten, fügen Sie der Datei pom.xml Ihres Projekts die Maven-Abhängigkeiten hinzu:

<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>

Konfigurieren Sie die Datei hibernate.properties Ihres Projekts, um den Open-Source-Dialekt für Cloud Spanner und den JDBC-Treiber zu verwenden:

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

Weitere Informationen zu den Funktionen und Empfehlungen für Hibernate bei Verwendung dieses Dialekts finden Sie in der Referenzdokumentation auf GitHub.

Nächste Schritte