Hibernate הוא כלי למיפוי יחסי אובייקטים לשפת התכנות Java. הוא מספק מסגרת למיפוי של מודל דומיין מונחה-עצמים למסד נתונים רלציוני.
אפשר לשלב מסדי נתונים של ניב GoogleSQL עם Hibernate. Spanner תואם ל-Hibernate ORM 6.x ו-7.x. גם הדיאלקט המובנה וגם הדיאלקט בקוד פתוח יוצרים הצהרות SQL, DML ו-DDL עבור רוב סוגי הישויות והקשרים הנפוצים, באמצעות אנוטציות סטנדרטיות של Hibernate ו-Java Persistence.
שימוש בשילוב מובנה של Hibernate (Hibernate ORM 7.4 ואילך)
החל מ-Hibernate ORM 7.4, Hibernate כולל ניב מובנה ל-Spanner (org.hibernate.dialect.SpannerDialect).
מומלץ להשתמש בניב המובנה הזה בפרויקטים חדשים, כי לא צריך להוסיף את התלות החיצונית google-cloud-spanner-hibernate-dialect.
בניב המובנה חסרות חלק מהתכונות והאופטימיזציות שזמינות בניב Spanner בקוד פתוח.
כדי להשתמש בניב המובנה, מוסיפים את יחסי התלות של Maven עבור Hibernate ORM core ואת מנהל ההתקן Spanner JDBC לקובץ pom.xml של הפרויקט.
כדי למצוא את הגרסאות העדכניות של התלויות האלה, אפשר לעיין בגרסאות של Hibernate ORM ובגרסאות של Spanner JDBC driver:
<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>
מגדירים את קובץ hibernate.properties של הפרויקט (בדרך כלל נמצא בספרייה src/main/resources) כך שישתמש ב-Spanner Dialect המובנה:
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
כדי לבצע אימות ב-Spanner, מנהל ההתקן של JDBC דורש פרטי כניסה. מגדירים את משתנה הסביבה GOOGLE_APPLICATION_CREDENTIALS לנתיב של קובץ ה-JSON של פרטי הכניסה של חשבון השירות. אחרת, מנהל ההתקן משתמש בפרטי הכניסה שמוגדרים כברירת מחדל באפליקציית gcloud של Google Cloud CLI.
שימוש בניב Spanner בקוד פתוח
בפרויקטים שבהם נעשה שימוש בגרסאות קודמות של Hibernate (גרסה 6.x או 7.x לפני 7.4), או אם אתם צריכים תכונות ואופטימיזציות שעדיין לא נתמכות על ידי הניב המובנה, אתם יכולים להשתמש בניב Spanner בקוד פתוח.
כדי להשתמש בניב קוד פתוח, מוסיפים את יחסי התלות של Maven לקובץ pom.xml של הפרויקט:
מגדירים את קובץ hibernate.properties של הפרויקט כך שישתמש ב-Spanner Dialect וב-JDBC Driver בקוד פתוח:
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
מידע נוסף על התכונות וההמלצות של Hibernate כשמשתמשים בניב הזה זמין במסמכי העיון ב-GitHub.
המאמרים הבאים
- דוגמאות לקוד של קופה באמצעות Hibernate עם Spanner.
- כדאי לנסות את ה-codelab בנושא Spanner עם Hibernate ORM.
- מידע נוסף על Hibernate ORM
- אפשר לראות את המאגר של Spanner Dialect ב-GitHub.
- מגישים בעיה ב-GitHub כדי לדווח על באג או לשאול שאלה לגבי Hibernate.
- מידע נוסף על Apache Maven
- מידע נוסף על שילוב של Spanner עם Hibernate ORM (ניב PostgreSQL)