프로젝트(4)
👉 JAP Paging
# Controller
@GetMapping("/admin/customer-list")
public List<UserResponseDto> getAllCustomers(Pageable pageable) {
return adminService.getAllCustomers(pageable);
}
# Service
@Override
@Transactional(readOnly = true)
public List<UserResponseDto> getAllCustomers(Pageable pageable) {
List<User> userList = userRepository.findAllByOrderByCreatedAtDesc(pageable);
if (userList.isEmpty()) throw new IllegalArgumentException("회원 목록이 없습니다.");
List<UserResponseDto> customerList = new ArrayList<>();
for(User user : userList){
customerList.add(new UserResponseDto(user));
}
return customerList;
}
# Repository
List<User> findAllByOrderByCreatedAtDesc(Pageable pageable);
🙋♂️ 소감 :
PageRequestDto 를 만들어서 @RequestBody로 값을 넘겨주는 페이징 처리를 구현하다가,
팀원분께서 JPA Pageable 페이징 방식으로 적용된 코드를 보여주셔서 Pageable로 리팩토링하였다.
포스트맨에서 직접 파람을 넣어서 요청해도 되고 @PageableDefault 어노테이션을 사용하여
사이즈, 페이지, 소트 등 기본값을 설정해줘도 된다.
페이징방식이 여러가지가 있는거 같은데 Pageable 사용법이 가장 간단히 처리할 수 있는거 같다.
어제는 맡은 Admin API는 모두 구현하였고, 오늘은 모든 예외처리와 시큐리티 적용을 하였다.
내일은 기본 기능구현 최종 머지를 하고 추가기능 구현에 박차를 가해야겠다.
😈 아는 내용이라고 그냥 넘어가지 않기! 😈
'❤️🔥TIL (Today I Learned)' 카테고리의 다른 글
[TIL] 2023-01-25(61day) / 프로젝트(6day) (0) | 2023.01.25 |
---|---|
[TIL] 2023-01-20(60day) / 프로젝트(5day) (0) | 2023.01.23 |
[TIL] 2023-01-18(58day) / 프로젝트(3day) (0) | 2023.01.19 |
[TIL] 2023-01-17(57day) / 프로젝트(2day) (0) | 2023.01.18 |
[TIL] 2023-01-16(56day) / 프로젝트(1day) (0) | 2023.01.16 |
댓글