221206 TIL 조회수 순으로 게시글 가져오기

2022. 12. 6. 23:30·성장이야기/TIL

오늘은 어드민 기능 중 인기 게시글을 파악하기 위한 통계 관련 기능을 구현하는 것을 목표로 했다.
조회수가 가장 높은 게시글 순위, 댓글이 가장 많이 달린 게시글 순위, 좋아요를 가장 많이 받은 게시글 순위 이렇게 세 가지 순위를 통계자료로 보여주기로 기획했었다.
    
조회수가 가장 높은순으로 게시글 3개를 어떻게 가져올까 생각하다 이전에 동료 한분이 평점순으로 장소를 가져오려고 했던 게 생각이 났다.
조회수 순으로 가져오는거랑 평점순으로 가져오라 방법은 똑같을 거라고 생각을 해 아샬 님이 평점순으로 장소를 가져오는 방법에 대해 답변을 주신 메가 오버플로우를 찾아봤는데 findTop3 OrderBy~~ 이런 형태로 가져올 수 있다는것을 알게 되었다.
바로 아래와 같이 코드를 작성했다. Hit(조회수)를 기준으로 가장 높은 순서대로 3개를 가져오는 것이다.

List<Post> posts = postRepository.findTop3OrderByHitDesc()

그랬더니 쿼리를 만드는데 실패했다는 QueryCreationException에러가 발생했다.

그 이유를 찾아보니 JPA Repository 메서드를 잘못 작성해서 쿼리를 만드는데 실패했던 것이었다.

 

잘못된 코드 -> findTop3OrderByHitDesc()

수정된 코드 -> findTop3ByOrderByHitDesc()

 

코드를 수정하고 다시 실행해보면 아래와 같이 조회수 순대로 3개의 게시글만 가져오는 것을 확인할 수 있다.

 

물론 3개 이상의 게시글을 가져오고 싶으면 Top 바로 다음에 원하는 만큼의 숫자를 적어 쿼리 결괏값 크기를 제한할 수 있다.

만약 숫자를 적지 않는다면 기본값인 1개를 가져온다고 한다.

 

https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#repositories.limit-query-result

 

'성장이야기 > TIL' 카테고리의 다른 글

221208 TIL useLocalStorage  (0) 2022.12.08
221207 TIL 어떤 게시판에 게시글이 가장 많을까?  (0) 2022.12.07
221205 TIL 내 채팅과 다른 사용자의 채팅 구분하기  (0) 2022.12.05
221204 TIL 등업 신청 현황 확인하기  (0) 2022.12.04
221203 TIL 하위 게시판 생성하기  (1) 2022.12.03
'성장이야기/TIL' 카테고리의 다른 글
  • 221208 TIL useLocalStorage
  • 221207 TIL 어떤 게시판에 게시글이 가장 많을까?
  • 221205 TIL 내 채팅과 다른 사용자의 채팅 구분하기
  • 221204 TIL 등업 신청 현황 확인하기
seungjjun
seungjjun
  • seungjjun
    개발이야기
    seungjjun
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 성장이야기
        • TIL
        • 주간회고
      • Java
        • Spring
        • Spring Security
      • 트러블슈팅
      • Kafka
      • OS
      • Network
      • 메가테라
      • Database
      • Algorithm
      • Git
      • HTML
      • CSS
      • 독서
      • 컴퓨터 이해하기
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    메가테라
    이커머스 프로젝트
    graphQL
    Til
    redis
    항해99
    항해플러스
    개발일지
    메가테라 주간회고
    주간회고
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
seungjjun
221206 TIL 조회수 순으로 게시글 가져오기
상단으로

티스토리툴바