[Troubleshooting] QueryDsl 서브쿼리 limit 1 적용 안 됨
·
SPRING/TIL
문제 상황문제 목록을 조회할 때 각 문제의 Top 유저를 함께 가져와야 했다. QueryDSL로 구현하려면, 기본적으로 문제를 조회하는 메인 쿼리와, 각 문제에 대한 Top 유저를 구하는 서브쿼리가 필요했다. Top 유저를 조회하는 기준 컬럼을 내림차순 정렬한 뒤 상위 1명만 선택한다는 아이디어로 설계했다. 즉, 정렬 후 limit 1을 적용해 한 행만 가져오는 방식을 떠올렸다. 실행을 돌려보니, Scalar subquery contains more than one row; SQL statement: 에러가 떴다. 문제 코드public List findPopularProblem(int limit) { QProblem problem = QProblem.problem; QProble..