코딩딩/Java
List에 담긴 Entity를 DTO로 변환하며 정렬하는 방법
전낙타
2024. 1. 11. 14:33
@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())
간단히 정리해보자면 이렇게 된다.