코딩마을방범대

CrudRepository, PagingAndSortingRepository와 JpaRepository의 차이 본문

💡 백엔드/Java

CrudRepository, PagingAndSortingRepository와 JpaRepository의 차이

신짱구 5세 2023. 6. 20. 09:45
728x90

 

 

 

Repository를 이용해 Redis를 활용하는 예제 코드에 JpaRepository가 아닌 CrudRepository를 활용해서

도대체 CrudRepository는 뭔가.. 싶어서 찾아보았다!

 

 

 

 

CrudRepository

애플리케이션에 필요한 모든 기본 쿼리 추상화를 제공하는 저장소 인터페이스

메소드 설명
save(…) 엔터티 의 Iterable 을 저장 
( 여러 개체를 전달하여 일괄적으로 저장할 수 있음 )
findOne(…)  전달된 기본 키 값을 기반으로 단일 엔터티 가져오기
findAll()  데이터베이스에서 사용 가능한 모든 엔터티 의 Iterable 가져오기
count() 테이블의 총 엔터티 수를 반환
delete(…) 전달된 개체를 기반으로 엔터티를 삭제
exists(…)  전달된 기본 키 값을 기반으로 엔터티가 존재하는지 확인
Iterable 
member를 하나씩 차례로 반환 가능한 object

 

 


 

PagingAndSortingRepository

CrudRepository 를 확장하는 저장소 인터페이스

( Pageable을 활용할 수 있음 )

 

 

Pageable 에는 세가지를 구성할 수 있음

  1. 페이지 크기 
  2. 현재 페이지 번호 
  3. 정렬

 


 

JpaRepository

PagingAndSortingRepository를 확장 하고 차례로 CrudRepository 를 확장

메소드 설명
findAll() 데이터베이스에서 사용 가능한 모든 엔터티 List 가져오기
findAll(…) 사용 가능한 모든 엔터티 List 을 가져오고 제공된 조건을 사용하여 정렬
save(…) 엔터티  Iterable 을 저장
( 여러 개체를 전달하여 일괄적으로 저장할 수 있음 )
flush() 보류 중인 모든 작업을 데이터베이스에 플러시
saveAndFlush(…)  엔터티를 저장하고 변경 사항을 즉시 플러시
deleteInBatch(…) 엔터티 의 Iterable 을 삭제
( 여러 개체를 전달하여 일괄적으로 삭제할 수 있음 )
플러시(flush)
영속성 컨텍스트의 변경 내용을 데이터베이스에 반영하는 것

 

 

 

 

 

 

 

 


참고사이트

스프링 데이터의 CrudRepository, JpaRepository 및...

 

 

 

728x90