프로젝트 환경설정
스프링 데이터 JPA 실습 프로젝트의 Gradle 설정과 스타터 라이브러리 구성, H2 데이터베이스 연동, 순수 JPA 리포지토리와 스프링 데이터 JPA 리포지토리로 기본 동작을 확인하는 과정을 정리합니다.
2022.05.02 — 2022.05.10 · Spring JPA · 다 읽는 데 약 62분
스프링 데이터 JPA 실습 프로젝트의 Gradle 설정과 스타터 라이브러리 구성, H2 데이터베이스 연동, 순수 JPA 리포지토리와 스프링 데이터 JPA 리포지토리로 기본 동작을 확인하는 과정을 정리합니다.
실습에 사용할 Member, Team 엔티티와 양방향 연관관계, 연관관계 편의 메소드를 정의하고, 순수 JPA로 저장·조회와 지연 로딩 동작을 확인합니다.
순수 JPA로 기본 CRUD 리포지토리를 만들어 본 뒤, 스프링 데이터 JPA의 공통 인터페이스 JpaRepository로 대체하고, 스프링 데이터 JPA가 구현 클래스를 만들어 주입하는 방식과 주요 메서드를 정리합니다.
메소드 이름으로 쿼리를 생성하는 방법부터 @Query, 파라미터 바인딩, 반환 타입, 페이징과 정렬, 벌크성 수정 쿼리, @EntityGraph까지 스프링 데이터 JPA의 쿼리 메소드 기능을 정리합니다.
사용자 정의 리포지토리 구현, Auditing으로 등록일·수정일·등록자·수정자 관리, 도메인 클래스 컨버터, 스프링 MVC에서 Pageable로 받는 페이징과 정렬 등 스프링 데이터 JPA의 확장 기능을 정리합니다.
스프링 데이터 JPA 공통 인터페이스 구현체인 SimpleJpaRepository의 @Repository·@Transactional 적용 방식과, save() 메서드가 isNew로 persist와 merge를 나누는 기준, Persistable로 판단 로직을 바꾸는 방법을 정리합니다.