Framework/Spring Boot

댓글 최신순 정렬

잔망루피 2022. 6. 8. 21:01

첫 번째 방법)

@OneToMany(mappedBy="post", fetch=FetchType.EAGER, cascade=CascadeType.REMOVE)
@OrderBy("id desc")
private List<Comment> comment;

댓글 Comment과 M:1 관계를 맺는 Post에 @OrderBy 어노테이션 추가

Comment의 id 필드를 기준으로 내림차순한다.

List<Comment> comments = postRepository.findById(postId).orElseThrow(() -> new PostNotFoundException(postId)).getComment();

Post에서 comment를 가져온다. 

 

 

 

두 번째 방법)

public List<CommentResponseDto> getCommentList(Long postId){
    List<Comment> comment=commentRepository.findCommentsByPostOrderByIdDesc(postRepository.findById(postId).orElseThrow(() -> new PostNotFoundException(postId)));
    List<CommentResponseDto> results=comment.stream().map(x -> CommentResponseDto.builder()
                    .comment(x).build()).collect(Collectors.toList());
    return results;
}

findCommentsByPostOrderByIdDesc는 게시글에 달린 댓글들을 id를 기준으로 내림차순해서 가져온다.

 

 

댓글 최신순 정렬 결과

 

 

 

참고 👇

https://www.baeldung.com/spring-data-sorting

 

Sorting Query Results with Spring Data | Baeldung

Learn different ways to sort results in Spring Data queries.

www.baeldung.com

 

반응형