Inflearn Community Q&A
@EntityGrape와 page
Resolved
Written on
·
395
0
안녕하세요, 강의 너무 감사하게 보고 있습니다.
다름이 아니고, EntityGraph를 이용하여 연관관계가 존재하는 Entity를 한번에 fetch join으로 가져오는 것으로 이해하였는데 이때 properties에
spring.jpa.properties.hibernate.default_batch_fetch_size=100
를 적용하면 한번에 100개씩만 가져오게 되는건가요??
추가적으로 이러한 질문을 한 이유는..
게시글을 구현하고 있습니다.
해당 게시글은 게시글에 댓글을 단 사람들고 1:N관계를 맺고 있고
해당 게시글을 조회한 사람과 1:N관계를 맺고 있고
유저는 여러 게시글을 작성할 수 있기에
유저와 게시글을 N:1관계를 맺고 있습니다.
여기서 게시글을 paging하고 싶은데
해당 게시글의 댓글 수, 조회 수, 작성자 등의 정보를 불러와야하므로
findAll()호출 시 연관관계를 모두 join fetch로 가져와야한다고 생각했습니다.
따라서 JpaRepository에서
@Override
@EntityGraph(attributePaths = {"user", "comments", "postHits"}
Page<Post> findAll(Pageable pageable);
어노테이션을 이용하여 findAll호출 시 연관된 모든 연관관계를 fetchjoin했으면 해서 저렇게 작성하였고,
properties에도 default_batch_fetch_size = 100으로 설정하였습니다.
이후 findAll을 실행하니..
HHH000104: firstResult/maxResults specified with collection fetch; applying in memory!
해당 에러가 발생하는데 이유를 알고싶어 질문남깁니다!!!
Quiz
Spring Data JPA에서 리포지토리 메소드의 이름만으로 쿼리를 생성할 때, 조건을 정의하는 부분의 시작을 나타내는 키워드는 무엇일까요?
Find
Get
By
Where
Answer 1
0
안녕하세요. 윤승환님, 공식 서포터즈 y2gcoder입니다.
해당 에러는 fetch join과 paging을 같이 사용하려고 하는 데서 오는 문제로 보입니다.
밑의 링크를 참고해주세요. :)
https://javabom.tistory.com/104
감사합니다.





