Repository를 상속받으면서
어떠한 기능들이 추가 되었을까?
위의 그림은 Repository들의 상속 관계이다.
각 Repository가 제공하는 기능
Repository
기본적으로 제공하는 메서드가 없어서 개발자가 직접 해당 기능들을 정의하고 사용해야 한다.
즉, 비어있는 인터페이스이다.
CrudRepository
기본적인 CRUD(Create, Read, Update, Delete) 작업을 수행하는 메서드들을 제공한다.
대표적인 메서드
- count() : 저장된 엔티티의 총개수를 반환
- save(S entity) : entity를 저장하거나 업데이트 (이미 존재하는 entity인 경우 업데이트 아니면 새로 저장)
- findById(ID id) : 해당 id를 가진 entity를 조회한다.
- findAll() : 저장된 모든 entity를 조회한다.
- delete(T entity) : 해당 entity를 삭제한다.
PagingAndSortingRepository
CrudRepoeitory를 확장하여 페이징과 정렬 기능을 추가로 제공한다.
대표적인 메서드
- findAll(Pageable pageable) : 페이징 된 형태로 모든 entity를 조회한다.
- findAll(Sort sort) : 정렬된 순서로 모든 entity를 조회한다.
JpaRepository
PagingAndSortingRepository를 확장하여 기존 기능을 보완하고, JPA에 관련된 기능들을 추가로 제공한다.
대표적인 메서드
- flush() : 영속성 콘텍스트의 변경사항을 즉시 DB에 반영한다.
- saveAndFlush(S entity) : entity를 저장하고 즉시 DB에 반영한다.
- deleteInBatch(Iterable<T> entities) : 여러 entity를 한 번에 삭제한다.
- deleteAllInBatch() : 모든 entity를 한 번에 삭제한다.
'Spring Boot' 카테고리의 다른 글
IntelliJ에서 한글이 깨져서 출력 되는 현상 고치기 (0) | 2023.11.25 |
---|---|
H2 DB를 웹 콘솔에서 접근할 수 있게 설정하기 (0) | 2023.11.25 |
웹 페이지에 출력하는 한글 깨짐 현상 해결하기 (0) | 2023.11.24 |
Spring Boot에서 Lombok 사용하기 위한 준비 과정 [라이브러리, 플러그인] (0) | 2023.11.24 |
Spring Boot에서 mustache를 사용하기 위한 준비 과정 [라이브러리, 플러그인] (0) | 2023.11.24 |