Cloud Spanner での Hibernate ORM

オープンソースの Cloud Spanner 言語SpannerDialect)を使うことで、Cloud Spanner で Hibernate ORM を使用できます。Cloud Spanner 言語は Google Cloud SpannerHibernate ORM 5.4 に対応しています。Cloud Spanner 言語では、標準の Hibernate アノテーションと Java Persistence アノテーションを使用して、一般的なエンティティのタイプと関係の SQL、DML、DDL ステートメントを生成します。

Cloud Spanner での Hibernate ORM の設定

Hibernate ORM コア、Cloud Spanner 言語、Cloud Spanner で公式にサポートされているオープンソース JDBC ドライバに対する Apache Maven 依存関係を追加します。

<dependencies>
  <!-- The Hibernate dialect for Spanner dependency -->
  <dependency>
    <groupId>com.google.cloud</groupId>
    <artifactId>google-cloud-spanner-hibernate-dialect</artifactId>
    <version>1.0.0</version>
  </dependency>

  <!-- The Spanner JDBC driver dependency -->
  <dependency>
    <groupId>com.google.cloud</groupId>
    <artifactId>google-cloud-spanner-jdbc</artifactId>
    <version>1.12.0</version>
  </dependency>

  <!-- Hibernate core dependency -->
  <dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>5.4.10.Final</version>
  </dependency>
</dependencies>

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

<!-- Connection settings -->
<property name="hibernate.dialect">com.google.cloud.spanner.hibernate.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 SDK gcloud アプリケーションで設定されているデフォルトの認証情報がドライバによって使用されます。

Cloud Spanner での Hibernate ORM の使用

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

次のステップ