Spanner와 Spring Data JPA(GoogleSQL 언어) 통합

대규모 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에서 작동 중인 샘플 애플리케이션을 사용할 수 있습니다.

다음 단계