정의

Java Persistence API

Java 진영에서 사용하는 ORM 기술의 표준

JPA의 구현체로는 Hibernate ORM, EclipseLink, DataNuclues 등이 있음

별도의 설정이 없으면 스프링에서 기본값으로 Hibernate를 사용

동작

image.png

Hibernate도 결국 JDBC를 사용함. 직접 사용하냐, ORM에 맡기냐의 차이

사용

implementation 'org.springframework.boot:spring-boot-starter-data-jpa'

build.gradle에 의존성 추가

그리고 application.yml에서 설정:

spring:
  jpa:
    database: mysql // 사용할 데이터소스 지정
    hibernate:
      ddl-auto: update // create: 앱 시작할 때마다 테이블 스키마 리셋, update: 변경사항만 반영, validate: 스키마 검증만
    show-sql: true
    defer-datasource-initialization: true // datasource 초기화를 Hibernate의 테이블 생성 후로 연기 -> data.sql 실행 연기