שילוב של Spanner עם Hibernate ORM (ניב GoogleSQL)

‫Hibernate הוא כלי למיפוי יחסי בין אובייקטים בשפת התכנות Java. הוא מספק מסגרת למיפוי של מודל דומיין מונחה-עצמים למסד נתונים רלציוני.

אפשר לשלב מסדי נתונים של ניב GoogleSQL עם Hibernate באמצעות Spanner Dialect (SpannerDialect) בקוד פתוח.‏ Spanner תואם ל-Hibernate ORM 6.x. ‫Spanner Dialect יוצר הצהרות SQL,‏ DML ו-DDL עבור רוב סוגי הישויות והקשרים הנפוצים באמצעות הערות סטנדרטיות של Hibernate ו-Java Persistence.

הגדרת מצב תנומה

בפרויקט, מוסיפים תלות ב-Apache Maven עבור Hibernate ORM core,‏ Spanner Dialect ומנהל התקנים JDBC בקוד פתוח שנתמך רשמית על ידי Spanner.

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

מגדירים את hibernate.cfg.xml לשימוש ב-Spanner Dialect וב-Spanner JDBC Driver.

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

שימוש ב-Hibernate עם Spanner GoogleSQL

מידע נוסף על התכונות וההמלצות של Hibernate מופיע במאמרי העזרה ב-GitHub.

המאמרים הבאים