스프링 부트 하루만에 배우기

11.4. 책 서비스 클래스에 목록 메소드 추가하기

연서은 2024. 8. 5. 11:20

책 목록 메소드와 응답 클래스를 이용해서 책 목록을 반환하는 기능을 추가해 보겠습니다.

src/main/java > com.yse.dev.book.service > BookService.java

Copypublic List<BookListResponseDTO> bookList(String title, Integer page){  
    final int pageSize = 3;  

    List<Book> books;  

    if (page == null) {  
        page = 0;  
    }else {  
        page -= 1;  
    }  

    if (title == null) {  
        Pageable pageable = PageRequest.of(page, pageSize, Direction.DESC, "insertDateTime");  
        books = this.bookRepository.findAll(pageable).toList();  
    }  
    else {  
        Pageable pageable = PageRequest.of(page, pageSize);  
        Sort sort = Sort.by(Order.desc("insertDateTime"));  
        pageable.getSort().and(sort);  
        books = this.bookRepository.findByTitleContains(title, pageable);  
    }  

    return books.stream().map(book ->  
        new BookListResponseDTO(book.getBookId(), book.getTitle())  
    ).collect(Collectors.toList());  
}