@Transactional(readOnly = true)
public List<ResponseReviewDto> findReviewsByMemberEmail(String memberEmail) {
List<Review> reviews = reviewRepository.findReviewsByMemberEmail(memberEmail);
return reviews.stream()
.map(ResponseReviewDto::toDto)
.sorted(Comparator.comparing(ResponseReviewDto::getReviewSeq)
.reversed())
.collect(Collectors.toList());
}
다음과 같이 수정하면 된다.
여기서 .map(ResponseReviewDto::toDto) 까지는 자주 사용하는 람다식이지만 그 밑에 sorted는 약간 생소할수도 있다.
하나의 역할씩 의사코드를 작성하며 풀이해보자
// 정렬할것이다 (무엇을?)
.sorted(
// Comparator 객체로 각각의 객체를 비교할것 (어떤 기준으로?)
Comparator.comparing
// 각각의 ResponseReviewDto가 가지고 있는 reviewSeq를 기준으로 (어떻게?)
(ResponseReviewDto::getReviewSeq)
// 역순으로 정렬할것
.reversed())
간단히 정리해보자면 이렇게 된다.
'코딩딩 > Java' 카테고리의 다른 글
모던 자바 인 액션 Chapter 2 (1) | 2024.08.16 |
---|---|
모던 자바 인 액션 Chapter 1 (0) | 2024.08.15 |
자바의 다형성 (0) | 2023.08.18 |
스프링 컨테이너와 스프링 빈 (0) | 2023.08.18 |
Static Member, 상속 (0) | 2023.08.17 |