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:
<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.
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:
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
- Codebeispiele für die Verwendung von Hibernate mit Cloud Spanner ansehen
- Codelab für Cloud Spanner mit Hibernate ORM testen.
- Learn more about Hibernate ORM.
- Repository für den Cloud Spanner-Dialekt auf GitHub ansehen
- Ein GitHub-Problem senden, um einen Fehler zu melden oder eine Frage zu stellen zu Hibernate.
- Learn more about Apache Maven.
- Weitere Informationen zu Cloud Spanner mit Hibernate ORM einbinden (PostgreSQL-Dialekt).