CrudRepository와 JpaRepository 차이 (Spring)
02 Mar 2022JpaRepository 는 PagingAndSortingRepository 를 상속받고 PagingAndSortingRepository 는 CrudRepository를 상속받는 구조이다.
Repository > CrudRepository > PagingAndSortingRepository > JpaRepository
- CrudRepository : CRUD의 기능을 제공함.
- PagingAndSortingRepository : 페이지네이션과 레코드 정렬 메서드를 제공함.
- JpaRepository : 한번에 레코드를 삭제하거나 영속성 컨텍스트를 플러시 하는등의 jpa와 관련된 메서드를 제공함.
그래서 JpaRepository 나 PagingAndSortingRepository 의 기능을 사용하지 않을 것이라면 CrudRepository을 사용하면 된다.
JpaRepository 와 CrudRepository 의 차이점을 살펴보자면
CrudRepository 의 경우 saveAll() 메서드의 return 객체가 iterable인 반면

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

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