CrudRepository와 JPA 저장소는 모두 스프링 데이터 저장소 라이브러리의 인터페이스입니다. Spring 데이터 리포지토리는 다양한 지속성 레이어에 대한 데이터 레이어에 액세스할 수 있도록 미리 정의된 몇 가지 파인더를 제공하여 상용구 코드를 줄입니다.
JPA 저장소는 CrudRepository 및 PagingAndSorting 저장소를 확장합니다. findOne과 같은 crud 저장소에서 일부 파인더를 상속하고 엔티티를 가져오고 제거합니다. 또한 일괄 처리로 레코드 삭제, 데이터베이스 기반으로 직접 데이터 플러시, 페이지 매김 및 정렬과 관련된 방법과 같은 JPA와 관련된 몇 가지 추가 방법을 제공합니다.
애플리케이션에서 이 리포지토리를 확장해야 이 리포지토리에서 사용할 수 있는 모든 메서드에 액세스할 수 있습니다. 또한 비즈니스 요구 사항에 따라 명명된 쿼리나 기본 쿼리를 사용하여 새로운 메서드를 추가할 수도 있습니다.
Sr. 아니요. | 키 | JPARepository | CrudRepository |
---|---|---|---|
1 | 계층 구조 | JPA 확장 crudRepository 및 PagingAndSorting 저장소 | Crud Repository는 기본 인터페이스이며 마커 인터페이스 역할을 합니다. |
2 | 일괄 지원 | JPA는 또한 일괄 레코드 삭제 및 데이터베이스에 직접 데이터 플러시와 같은 JPA와 관련된 몇 가지 추가 방법을 제공합니다. | findOne, save 등과 같은 CRUD 기능만 제공합니다. |
3 | 페이지 매김 지원 | JPA 저장소는 PagingAndSorting 저장소도 확장합니다. 페이지 매김을 구현하는 데 유용한 모든 방법을 제공합니다. | Crud Repository는 페이지 매김 및 정렬을 구현하는 방법을 제공하지 않습니다. |
4 | 사용 사례 | JpaRepository는 저장소를 JPA 지속성 기술에 연결하므로 피해야 합니다. | 정렬 및 페이징이 필요한지 여부에 따라 CrudRepository 또는 PagingAndSortingRepository를 사용해야 합니다. |
JpaRepository의 예
@Repository public interface BookDAO extends JpaRepository { Book findByAuthor(@Param("id") Integer id); }
CrudRepository의 예
@Repository public interface BookDAO extends CrudRepository { Book Event findById(@Param("id") Integer id); }