Mengintegrasikan Spanner dengan Hibernate ORM (dialek GoogleSQL)

Hibernate adalah alat pemetaan relasional objek untuk bahasa pemrograman Java. Framework ini menyediakan pemetaan model domain berorientasi objek ke database relasional.

Anda dapat mengintegrasikan database dialek GoogleSQL dengan Hibernate. Spanner kompatibel dengan Hibernate ORM 6.x dan 7.x. Dialek bawaan dan dialek open source menghasilkan pernyataan SQL, DML, dan DDL untuk sebagian besar jenis dan hubungan entitas umum menggunakan anotasi Hibernate dan Java Persistence standar.

Menggunakan integrasi Hibernate bawaan (Hibernate ORM 7.4+)

Mulai dari Hibernate ORM 7.4, Hibernate menyertakan dialek bawaan untuk Spanner (org.hibernate.dialect.SpannerDialect).

Sebaiknya project baru menggunakan dialek bawaan ini, karena tidak memerlukan penambahan dependensi google-cloud-spanner-hibernate-dialect eksternal. Dialek bawaan tidak memiliki beberapa fitur dan pengoptimalan yang tersedia di dialek Spanner open source.

Untuk menggunakan dialek bawaan, tambahkan dependensi Maven untuk inti Hibernate ORM dan driver JDBC Spanner ke file pom.xml project Anda. Untuk menemukan versi terbaru dependensi ini, lihat rilis Hibernate ORM dan rilis driver 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>

Konfigurasi file hibernate.properties project Anda (biasanya terletak di direktori src/main/resources) untuk menggunakan Dialek Spanner bawaan:

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

Untuk mengautentikasi dengan Spanner, driver JDBC memerlukan kredensial. Tetapkan variabel lingkungan GOOGLE_APPLICATION_CREDENTIALS ke jalur file kredensial JSON akun layanan Anda. Jika tidak, driver akan menggunakan kredensial default yang ditetapkan di aplikasi gcloud Google Cloud CLI.

Menggunakan dialek Spanner open source

Untuk project yang menggunakan Hibernate versi sebelumnya (6.x atau 7.x sebelum 7.4), atau jika Anda memerlukan fitur dan pengoptimalan yang belum didukung oleh dialek bawaan, Anda dapat menggunakan Spanner Dialect open source.

Untuk menggunakan dialek open source, tambahkan dependensi Maven ke file pom.xml project Anda:

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

Konfigurasi file hibernate.properties project Anda untuk menggunakan Spanner Dialect dan Driver JDBC open source:

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

Untuk mengetahui informasi selengkapnya tentang fitur dan rekomendasi untuk Hibernate saat menggunakan dialek ini, lihat dokumentasi referensi di GitHub.

Langkah berikutnya