코딩마을방범대
CrudRepository, PagingAndSortingRepository와 JpaRepository의 차이 본문
728x90
Repository를 이용해 Redis를 활용하는 예제 코드에 JpaRepository가 아닌 CrudRepository를 활용해서
도대체 CrudRepository는 뭔가.. 싶어서 찾아보았다!
CrudRepository
애플리케이션에 필요한 모든 기본 쿼리 추상화를 제공하는 저장소 인터페이스
메소드 | 설명 |
save(…) | 엔터티 의 Iterable 을 저장 ( 여러 개체를 전달하여 일괄적으로 저장할 수 있음 ) |
findOne(…) | 전달된 기본 키 값을 기반으로 단일 엔터티 가져오기 |
findAll() | 데이터베이스에서 사용 가능한 모든 엔터티 의 Iterable 가져오기 |
count() | 테이블의 총 엔터티 수를 반환 |
delete(…) | 전달된 개체를 기반으로 엔터티를 삭제 |
exists(…) | 전달된 기본 키 값을 기반으로 엔터티가 존재하는지 확인 |
Iterable
member를 하나씩 차례로 반환 가능한 object
PagingAndSortingRepository
CrudRepository 를 확장하는 저장소 인터페이스
( Pageable을 활용할 수 있음 )
Pageable 에는 세가지를 구성할 수 있음
- 페이지 크기
- 현재 페이지 번호
- 정렬
JpaRepository
PagingAndSortingRepository를 확장 하고 차례로 CrudRepository 를 확장
메소드 | 설명 |
findAll() | 데이터베이스에서 사용 가능한 모든 엔터티 List 가져오기 |
findAll(…) | 사용 가능한 모든 엔터티 List 을 가져오고 제공된 조건을 사용하여 정렬 |
save(…) | 엔터티 의 Iterable 을 저장 ( 여러 개체를 전달하여 일괄적으로 저장할 수 있음 ) |
flush() | 보류 중인 모든 작업을 데이터베이스에 플러시 |
saveAndFlush(…) | 엔터티를 저장하고 변경 사항을 즉시 플러시 |
deleteInBatch(…) | 엔터티 의 Iterable 을 삭제 ( 여러 개체를 전달하여 일괄적으로 삭제할 수 있음 ) |
플러시(flush)
영속성 컨텍스트의 변경 내용을 데이터베이스에 반영하는 것
참고사이트
스프링 데이터의 CrudRepository, JpaRepository 및...
728x90
'💡 백엔드 > Java' 카테고리의 다른 글
Guava Cache (0) | 2023.06.20 |
---|---|
SpringBoot의 @Qualifier와 @Primary (0) | 2023.06.20 |
실행 가능한 war 파일 만들기 (0) | 2023.06.08 |
디버깅 실행 시 application이 정상적으로 실행 되지 않을 경우 (0) | 2023.06.01 |
웹 소켓을 이용한 메시지 전송(백엔드 - SpringBoot) (0) | 2023.06.01 |