JPA에서 @Query
어노테이션을 사용하여 불러올 컬럼들을 지정하였다. 그리고 이렇게 불러온 데이터들을 페이징하려고 Page와 Pageable을 사용해서 코드를 작성하였다.
Repository와 Service, Controller까지 모두 작성 후 빌드 및 서버를 실행시켰고 내가 생각한 엣지 케이스들도 원하는 형태로 나오는지 요청을 보내보았다. 그리고 엣지 케이스들 중에서 내가 원하는 답이 나오지 않는 경우가 있다는 것을 발견하였다.
JPA unknown Column in Field list
에러 발생unknown column
에러가 났다.@Query
어노테이션을 실행하며 count 쿼리를 JPA가 자동으로 생성하다가 생긴 문제이므로 countQuery
라는 옵션을 지정해서 해결하였다.
value와 비슷한 형태의 쿼리문이지만 SELECT절 내에서 count(A.id)와 같이 데이터의 개수를 불러오도록 쿼리를 짜면 JPA가 자동으로 count 쿼리를 생성하지 않고 countQuery = "쿼리문"에 오는 쿼리문으로 전체 데이터의 개수를 불러온다.