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 zum Zuordnen 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. Hibernate ORM hat einen integrierten Cloud Spanner-Dialekt. Außerdem ist auf GitHub ein von Google verwalteter Hibernate-Dialekt verfügbar. Beide Dialekte 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-Einbindung 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. Der integrierte Dialekt unterstützt standardmäßige Hibernate-Funktionen. Wenn Ihre Anwendung erweiterte Cloud Spanner-spezifische Funktionen erfordert, empfehlen wir stattdessen die Verwendung des von Google verwalteten externen Dialekts.

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:


  
  
    org.hibernate.orm
    hibernate-core
    7.4.0.Final
  

  
  
    com.google.cloud
    google-cloud-spanner-jdbc
    2.40.0
  

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.

Von Google verwalteten Cloud Spanner-Dialekt verwenden

Für Projekte mit früheren Versionen von Hibernate (6.x oder 7.x vor 7.4) oder wenn Sie erweiterte Cloud Spanner-spezifische Funktionen benötigen, die vom integrierten Dialekt noch nicht unterstützt werden, können Sie den von Google verwalteten Cloud Spanner-Dialekt verwenden.

Zu den erweiterten Funktionen, die vom von Google verwalteten Dialekt unterstützt werden, gehören:

  • Überlappende Tabellenhierarchien (@Interleaved)
  • Hinweise zu Abfragen, Indexen und Scans
  • Batching von DDL-Schemas
  • Transaktionstags (@TransactionTag)
  • Gepoolte Sequenzen (@PooledBitReversedSequenceGenerator)

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


  
  
    com.google.cloud
    google-cloud-spanner-jdbc
  

  
  
    org.hibernate.orm
    hibernate-core
    6.4.4.Final
  

Konfigurieren Sie die Datei hibernate.properties Ihres Projekts, um den von Google verwalteten Cloud Spanner-Dialekt 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