우매함의 봉우리를 넘어서며 개발하면서 기록하기

CrudRepository와 JpaRepository 차이 (Spring)

JpaRepository 는 PagingAndSortingRepository 를 상속받고 PagingAndSortingRepositoryCrudRepository를 상속받는 구조이다.

Repository > CrudRepository > PagingAndSortingRepository > JpaRepository

  • CrudRepository : CRUD의 기능을 제공함.
  • PagingAndSortingRepository : 페이지네이션과 레코드 정렬 메서드를 제공함.
  • JpaRepository : 한번에 레코드를 삭제하거나 영속성 컨텍스트를 플러시 하는등의 jpa와 관련된 메서드를 제공함.

그래서 JpaRepositoryPagingAndSortingRepository 의 기능을 사용하지 않을 것이라면 CrudRepository을 사용하면 된다.

JpaRepositoryCrudRepository 의 차이점을 살펴보자면

CrudRepository 의 경우 saveAll() 메서드의 return 객체가 iterable인 반면

image1

JpaRepository 의 경우 saveAll() 메서드의 return 객체가 List 이다.

image2

번외로, 최근 공부중인 ElasticsearchRepository 의 경우 PagingAndSortingRepository 을 상속받아 만들어졌다.