Spanner を Hibernate ORM(GoogleSQL 言語)と統合する

Hibernate は、Java プログラミング言語用のオブジェクト リレーショナル マッピング ツールです。オブジェクト指向のドメインモデルをリレーショナル データベースにマッピングするためのフレームワークが提供されています。

オープンソースの Spanner 言語SpannerDialect)を使用することで、GoogleSQL 言語データベースを Hibernate と統合できます。Spanner は Hibernate ORM 6.x に対応しています。Spanner 言語は、標準の Hibernate アノテーションと Java Persistence アノテーションを使用して、一般的なエンティティのタイプと関係性に対して SQL、DML、DDL ステートメントを生成します。

Hibernate を設定する

プロジェクトで、Hibernate ORM コア、Spanner 言語、Spanner が正式にサポートしているオープンソースの JDBC ドライバに Apache Maven の依存関係を追加します。

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

Spanner Dialect と Spanner JDBC ドライバを使用するように hibernate.cfg.xml を構成します。

<!-- Connection settings -->
<property name="hibernate.dialect">org.hibernate.dialect.SpannerDialect</property>
<property name="hibernate.connection.driver_class">com.google.cloud.spanner.jdbc.JdbcDriver</property>
<property name="hibernate.connection.url">jdbc:cloudspanner:/projects/{YOUR_PROJECT_ID}/instances/{YOUR_INSTANCE_ID}/databases/{YOUR_DATABASE_ID}</property>

サービス アカウントの JSON 認証情報ファイルの場所が GOOGLE_APPLICATION_CREDENTIALS 環境変数に含まれている必要があります。そのようにしないと、Google Cloud CLI gcloud アプリケーションで設定されているデフォルトの認証情報がドライバによって使用されます。

Spanner GoogleSQL で Hibernate を使用する

Hibernate の機能と推奨事項の詳細については、GitHub のリファレンス ドキュメントをご覧ください。

次のステップ