Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java에서 CrudRepository와 JPARepository의 차이점 - 2020 - 다른 사람

<시간/>

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);
}