스터디/JPA
fetch join 과 limit 을 같이 쓸 때 주의하자. (firstResult/maxResults specified with collection fetch)
결론부터 말하면 One에서 Many를 fetch 해야하는 경우 limit과 같은 절(Pagination을 위한)을 포함하면 원하는 대로 결과나 나오지 않는다. 예제코드(+ 테스트코드)는 Github에서 확인할 수 있다. LIMIT 그리고 SET_MAX_RESULT JPQL Pagination을 위해서는 MySQL 기준 limit (그리고 offset) 을 사용해야 한다. 그런데 JPA은 DB에 따라서 방언을 바꾸어 Query를 생성하기 때문에 MySQL 방언에 속하는 LIMIT 절을 JPQL에서 직접 사용할 수 없다. 따라서 아래와 같이 쿼리를 작성하면 QuerySyntaxException, IllegalArgumentException 이 발생한다. @Query("SELECT a FROM Article ..