Spring

네이티브 쿼리에 대해 페이징 가능을 전달하는 방법은 무엇입니까?

기록만이살길 2021. 3. 19. 03:04
반응형

네이티브 쿼리에 대해 페이징 가능을 전달하는 방법은 무엇입니까?

1. 질문(문제점):

나는 프로젝트를하고 있었고 거기에서 페이징 가능한 객체를 사용하고 JPA에서 페이지 객체를 받아야했습니다.

누구든지 이것을 사용하는 방법에 대한 아이디어가 있습니까?

@Repository
public interface CustomerRepository extends JpaRepository<Customer,Long>{

    @Query("SELECT * FROM WHERE name=?1 AND surname=?2 ", nativeQuery = true)
    List<Customer> findAllByNameAndSurname(String name,String surname);
}

이 쿼리에서 결과를 가져올 페이지 List이 필요합니다.

2. 해결방안:

SpringData JPA 및 페이지 매김이있는 네이티브 쿼리는 Spring에서 지원되지 않습니다. 문서에 따르면 SpringData JPA 저장소는 네이티브 쿼리 및 페이지 매김과 함께 사용할 수 있습니다. 그러나 실제 스프링 데이터 JPA (1.10.2.RELEASE)에서는 몇 가지 추가 수정이 필요합니다.

페이지 매김 지원을 원한다면 이것을 사용해야합니다.

List<Customer> customers = customerRepository.findAllByNameAndSurname(name,username);
PagedListHolder<Customer> pages = new PagedListHolder(customers);
pages.setPage(currentPageNumber); //set current page number
pages.setPageSize(pageSize); // set the size of page

pages.getPageList(); // return the list of items(or in your case List<Customer> ) of current page 
65687192
반응형