JPA에서 페이징 처리와 정렬은 findAll() 메서드를 사용
findAll()은 파라미터로 전달되는 Pageable 타입의 객체에 의해서 실행되는 쿼리를 결정
여기서 주의사항은 Page<T> 타입으로 지정하는 경우 반드시 파라미터를 Pageable 타입을 이용
Pageable interface: 페이지 처리에 필요한 정보를 전달하는 용도의 타입
Pageable 인터페이스는 정보 전달의 용도의 타입으로, 실제 객체를 생성할 때는 구현체인 PageRequest 클래스를 이용
객체를 생성하기 위해 static한 of()를 이용하여 처리
페이징 처리)
- PageRequest.of()를 이용하여 1페이지의 데이터 10개를 가져옴 (JPA의 페이지 처리는 반드시 '0'부터 시작)
- Page타입은 단순히 해당 목록만으로 가져오지 않고 실제 페이지 처리에 필요한 전체 데이터의 개수를 가져오는 쿼리를 처리
결과)
- MariaDB 페이징 처리에 사용하는 limit 구문의 사용
- count()를 이용하여 전체 개수 처리
PageRequest에는 정렬과 괸련된 Sort타입을 파라미터로 전달할 수 있음
정렬 조건 추가)
mno필드의 값을 역순으로 정렬하도록 Sort.by(필드).desending()하여 PageRequest 파라미터로 전달
'코드로 배우는 스프링부트 웹 프로젝트' 카테고리의 다른 글
Springboot) 자동으로 처리되는 날짜/시간 설정 , JPA객체의 범위 (0) | 2021.12.02 |
---|---|
Springboot)Thymeleaf 의 사용법 (0) | 2021.11.26 |
Springboot) MVC패턴 (0) | 2021.11.26 |
Springboot) 쿼리 메서드와 @Query (0) | 2021.11.25 |
Springboot) ORM,JPA,Hibernate,JPA를 통한 CRUD처리 (0) | 2021.11.24 |