본문 바로가기

728x90

lazy loading

(2)
[JPA] 양방향 매핑 관계 로딩 방법 별로 살펴보기 (N+1 문제는 도대체 언제?) 개인적으로 너무 헷갈리고, 진심인데 블로그 포스트마다 내용이 다른 것 같기도 하다. 그냥 직접 하면서 최대한 가능한 상황들을 정리해보려고 한다. 더 헷갈리게만 만드는 장황한 설명따윈 없이, 그냥 내가 정리하고 싶기도 해서 특정 CASE 에 대한 결과만 정리하니, 참고하실 분들은 결과만 참고하시면 좋을 것 같다. 기본적으로 다음과 같이 클래스들이 있다. 이하로 정리되는 내용은 의 제목으로 정리된다. @Entity @Getter @NoArgsConstructor @Table(name = "groups") public class Group { @Id @GeneratedValue private Long id; private String name; @OneToMany(mappedBy = "group", fetch..
[JPA] OSIV 만 믿었다가 Lazy 로딩에 발등찍힌 썰 작업을 하다가 처음 보는 문제점을 확인해서 로깅 기록을 남겨보게 되었다. 요즘 글 많이 쓰기 힘들어서 문제 설명만 하고 빨리빨리 진행하겠다. 이 로직만 정말 하루 종일 작업했다. 1. 문제 상황 Group 과 GroupCategory, Category 가 있다. 카테고리에는 categoryValue 가 있고, Group 과 Category 는 N:N 관계이며 GroupCategory 테이블이 둘을 연결해준다. Group 을 검색하는 로직을 만들고 있을 때, JPQL, 1:N 의 fetchJoin 에서의 Paging 처리 문제 등등으로 인해서, GroupCategory 와 Category 를 fetch Join 하지 못한채 원하는 Group List 를 가져온 상황이다. (이럴 수밖에 없었음.. 해쉬태그 ..