Spring Data JPA, חלק מהמשפחה הגדולה יותר של Spring Data, מקל על הטמעה של מאגרי מידע מבוססי JPA. Spring Data JPA תומך ב-Spanner ובמגוון רחב של מערכות מסדי נתונים אחרות. היא מוסיפה שכבת הפשטה בין האפליקציה לבין מסד הנתונים, וכך מקלה על העברת האפליקציה ממערכת מסד נתונים אחת לאחרת.
הגדרת Spring Data JPA למסדי נתונים של Spanner עם ניב GoogleSQL
אתם יכולים לשלב מסדי נתונים של Spanner GoogleSQL-dialect עם Spring Data JPA באמצעות Spanner Hibernate Dialect (SpannerDialect) בקוד פתוח.
כדי לראות דוגמה, אפשר לעיין באפליקציה לדוגמה שעובדת המלאה ב-GitHub.
תלויות
בפרויקט, מוסיפים תלות ב-Apache Maven עבור Spring Data JPA, Spanner Hibernate Dialect ומנהל התקן JDBC בקוד פתוח שנתמך רשמית על ידי Spanner.
<dependencies>
<!-- Spring Data JPA -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!-- Hibernate Dialect and JDBC Driver dependencies-->
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-spanner-hibernate-dialect</artifactId>
</dependency>
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-spanner-jdbc</artifactId>
</dependency>
</dependencies>
הגדרות אישיות
מגדירים את application.properties כך שישתמש ב-Spanner
Hibernate Dialect וב-Spanner JDBC Driver.
# Spanner connection URL.
# - ${PROJECT_ID} Replace with your Google Cloud project ID
# - ${INSTANCE_ID} Replace with your Spanner instance ID
# - ${DATABASE_NAME} Replace with the name of your Spanner database that you created inside your Spanner instance
spring.datasource.url=jdbc:cloudspanner:/projects/${PROJECT_ID}/instances/${INSTANCE_ID}/databases/${DATABASE_NAME}
# Specify the Spanner JDBC driver.
spring.datasource.driver-class-name=com.google.cloud.spanner.jdbc.JdbcDriver
# Specify the Spanner Hibernate dialect.
spring.jpa.properties.hibernate.dialect=com.google.cloud.spanner.hibernate.SpannerDialect
spring.jpa.hibernate.ddl-auto=update
# Settings to enable batching statements for efficiency
spring.jpa.properties.hibernate.jdbc.batch_size=100
spring.jpa.properties.hibernate.order_inserts=true
# You can display SQL statements and stats for debugging if needed.
spring.jpa.properties.hibernate.show_sql=true
spring.jpa.properties.hibernate.format_sql=true
אפליקציה לדוגמה מלאה
אפליקציה לדוגמה שפועלת זמינה ב-GitHub.
המאמרים הבאים
- מידע נוסף על Spring Data JPA
- מידע נוסף על Hibernate ORM
- אפשר לראות את המאגר של Spanner Dialect ב-GitHub.
- מגישים בעיה ב-GitHub כדי לדווח על באג או לשאול שאלה לגבי Hibernate.
- שילוב של Spanner עם Spring Data JPA (ניב PostgreSQL).