대규모 Spring Data 계열의 일부인 Spring Data JPA를 사용하면 JPA 기반 저장소를 더욱 쉽게 구현할 수 있습니다. Spring Data JPA는 Spanner 및 다양한 데이터베이스 시스템을 지원합니다. 애플리케이션이 한 데이터베이스 시스템에서 다른 데이터베이스 시스템으로 쉽게 포팅할 수 있게 하는 데이터베이스와 애플리케이션 사이에 추상화 레이어를 추가합니다.
Spanner GoogleSQL 언어 데이터베이스용 Spring Data JPA 설정
오픈소스 Spanner Hibernate 언어(SpannerDialect
)를 사용하여 Spanner GoogleSQL 언어 데이터베이스와 Spring Data JPA를 통합할 수 있습니다.
예시를 보려면 GitHub에서 전체 작동하는 샘플 애플리케이션을 참조하세요.
종속 항목
프로젝트에서 Spring Data JPA ,Spanner Hibernate 언어, Spanner에서 공식적으로 지원하는 오픈소스 JDBC 드라이버에 대해 Apache Maven 종속 항목을 추가합니다.
<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>
구성
Spanner Hibernate 언어 및 Spanner JDBC 드라이버를 사용하려면 application.properties
를 구성합니다.
# Spanner connection URL.
# - ${PROJECT_ID} Replace with your GCP 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 자세히 알아보기
- GitHub에서 Spanner Dialect의 저장소 확인하기
- GitHub 문제를 제출하여 버그 신고 또는 Hibernate에 대해 질문하기
- Spanner와 Spring Data JPA(PostgreSQL 언어) 통합하기