Spring Data JPA를 직접 사용해보면서 조금이나마 경험을 해볼 수 있는 시리즈를 작성하고자 합니다.
이 글을 통해 프로젝트 생성을 시작으로 Spring Data JPA를 활용한 데이터베이스로부터의 데이터 조회, 생성, 수정 및 엔티티 정의부터 Spring Data JPA가 제공하는 다양한 기능을 사용하는데에 이르기까지를 전달하고자 합니다.
시작하기에 앞서 IDE는 JetBrains Intellij를 사용하고 빌드 도구는 Gradle을 기반으로 진행합니다.
# 해당 시리즈 게시글은 Notion에서 작성된 내용을 그대로 옮겨오는 과정에서 서식의 깨짐 및 부자연스러움이 발생할 수 있습니다.
예제 프로젝트 생성
해당 시리즈에서 필요한 최소한의 의존성만 선택해주도록 합니다.
프로젝트 생성 직후 프로젝트 디렉토리 구조
데이터베이스 스키마 생성
CREATE DATABASE tutorial CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'tutorial'@'%' IDENTIFIED BY 'tutorial';
CREATE USER 'tutorial'@'localhost' IDENTIFIED BY 'tutorial';
GRANT ALL PRIVILEGES ON tutorial.* TO tutorial@'%';
GRANT ALL PRIVILEGES ON tutorial.* TO tutorial@'localhost';
FLUSH PRIVILEGES;
필수 Configuration 작성
application.yml
spring:
datasource:
url: jdbc:mariadb://localhost:3306/tutorial
username: tutorial
password: tutorial
driver-class-name: org.mariadb.jdbc.Driver
jpa:
show-sql: true
properties:
hibernate:
format_sql: true
hibernate:
ddl-auto: update
프로젝트에 Spring Data JPA 의존성이 걸려 있으면 디폴트 설정으로 인해 DataSource 설정을 필수적으로 해주어야 됩니다. 해당 설정이 없는 경우 JPA 모듈을 사용할 수 없기 때문입니다.
spring.jpa.show-sql
설정은 repository method가 수행될 때 실제로 수행되는 SQL문을 콘솔에 출력해주고 spring.jpa.properties.hibernate.format_sql
설정을 통해 한 라인으로 길게 표시되는 로그의 형태를 비교적 이쁜 형태로 보여주도록 하는 설정입니다.
spring.jpa.hibernate.ddl-auto
설정은 Database Scheme 초기화 전략과 관련된 설정인데 가능한 설정 옵션으로는 다음과 같습니다.
- none (Default) : 아무런 처리를 하지 않음
- update : 변경된 스키마가 존재하면 갱신
- validate : 변경된 스키마가 존재하면 종료
- create : 기존 스키마를 초기화 후 다시 생성
- create-drop : 기존 스키마를 초기화 후 다시 생성한 후 종료 시점에 초기화
프로젝트 전체 소스 코드는 아래 Github에서 참고 가능합니다.
댓글