Spring Boot

Spring Data Repositories

Spring Data repositories, CrudRepository vs JpaRepository, 커스텀 쿼리, @EntityGraph, 프로젝션

25 면접 질문·
Mid-Level
1

JpaRepository와 CrudRepository의 주요 차이점은 무엇인가요?

답변

JpaRepository는 CrudRepository와 PagingAndSortingRepository를 모두 확장하며 flush(), saveAndFlush(), deleteInBatch()와 같은 JPA 전용 메서드를 추가합니다. CrudRepository는 기본 CRUD 작업(save, findById, delete)만 제공합니다. JpaRepository를 사용하면 여러 인터페이스를 조합할 필요 없이 모든 고급 JPA 기능에 접근할 수 있습니다.

2

repository 계층에서 PagingAndSortingRepository의 역할은 무엇인가요?

답변

PagingAndSortingRepository는 CrudRepository를 확장하여 페이지네이션과 정렬을 위한 findAll(Pageable) 및 findAll(Sort) 메서드를 추가합니다. 이를 통해 Page/Slice로 데이터를 페이지 단위로 조회하고 결과를 정렬할 수 있습니다. JpaRepository는 이 인터페이스를 확장하므로 페이지네이션, 정렬, JPA 전용 기능을 하나의 인터페이스에서 제공합니다.

3

Spring Data repository 인터페이스의 올바른 계층 구조는 무엇인가요?

답변

올바른 계층 구조는 Repository(기본) → CrudRepository(CRUD) → PagingAndSortingRepository(페이지네이션/정렬) → JpaRepository(JPA 전용)입니다. 각 단계는 기능을 추가합니다. CrudRepository는 save/delete를, PagingAndSortingRepository는 페이지네이션/정렬을, JpaRepository는 flush/batch를 추가합니다. 이 아키텍처를 통해 필요한 기능 수준을 선택할 수 있습니다.

4

변경 사항을 데이터베이스와 즉시 동기화할 수 있는 JpaRepository 메서드는 무엇입니까?

5

어떤 경우에 JpaRepository보다 CrudRepository를 선호해야 합니까?

+22 면접 질문

다음 면접을 위해 Spring Boot을 마스터하세요

모든 질문, flashcards, 기술 테스트, 코드 리뷰 연습, 면접 시뮬레이터에 접근하세요.

무료로 시작하기