EntityGraph 이용시 컬렉션 페치조인의 경우 질문
안녕하세요!
JPQL로 엔티티 페치조인이 아닌 , 일대다 입장에서 컬렉션 페치조인을 할 경우 -> 데이터 뻥튀기 문제가 발생하여 distinct 키워드로 뻥튀기된 데이터를 없애주어야 했느데요 ,
EntityGraph를 이러한 컬렉션 페치조인에 사용하여도 distinct를 쓴것 처럼 데이터 뻥튀기 문제가 발생하지 않는지 궁금합니다.
감사합니다.
답변 1
0
안녕하세요. khd1692님, 공식 서포터즈 y2gcoder입니다.
먼저 답변에 대한 답을 드리자면 left outer join 을 이용해서 이 문제를 해결한다고 합니다.
그밖에 좀 더 자세한 정보를 원하시면 해당 링크를 참조해주세요 :)
https://velog.io/@meme2367/EnjoyDelivery-%EC%9D%B4%EC%8A%88-1.-%EA%B0%80%EA%B2%8C-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%A1%B0%ED%9A%8C-%EC%8B%9C-N1%EB%AC%B8%EC%A0%9C-%ED%95%B4%EA%B2%B0%ED%95%98%EA%B8%B0-Fetch-join-EntityGraph
감사합니다.
0
답변 감사합니다.
함께 제시해주신 링크의 글을 읽어보았는데요 ,
여기서도 inner join을 하는 JPQL 기반 페치조인 방식과 달리
left outer join을 하는 EntityGraph 동작을 이용하여 컬렉션 페치조인을 하는 컬렉션 대상을 [1개만] 명시하여도 문제가 없다는 내용으로 이해하였습니다.
그렇다면 혹시 EntityGraph를 사용하여 이렇게 컬렉션 페치조인을 할 때, 2개 이상의 여러 컬렉션을 명시해도 되는지 추가적으로 여쭤보고 싶습니다.
기존 JPQL 기반 페치조인에서는 distinct로 데이터 뻥튀기 문제를 처리할 수 있었던게 한 컬렉션 까지여서 2개이상의 컬렉션 페치조인은 불가능 한것으로 이해하였는데, EntiyGraph도 동일한지 or 혹은 이부분을 극복시켜주는지 여쭙고 싶스빈다.
0
저도 찾아본 결과 EntityGraph 와 fetch join의 차이는 앞서 보았던 inner join / left outer join 정도라 같은 문제가 발생할 것으로 보입니다.
2개 이상의 컬렉션을 조회하는 경우는 영한님의 JPA 활용2편을 보시면 좀 더 좋은 해결방법을 알려주시니 추천드립니다.
changeTeam 메서드 질문
0
20
1
existsByUserIdAndProjectId vs existsByUserAndProject 중 어떤 방식이 적절할까요?
0
78
1
existsByUserIdAndProjectId vs existsByUserAndProject 중 어떤 방식이 적절할까요?
0
111
3
MemberRepository 구현체
0
63
1
pdf 표현 질문드립니다.
0
65
1
로그가 남지 않는 문제.
0
90
1
테스트 라이브러리가 강의는 junit4가 맞나요??
0
73
2
pdf 파일과 차이점이 있는 것같은데 문제 없나요?
0
73
2
@PrePersist, @PreUpdate 호출 시점 질문드립니다.
0
96
2
Sort 인터페이스는 잘 사용 안하나요?
0
52
1
스캔대상 질문드립니다.
0
46
1
하이버네이트6에서의 최적화에 이은 질문
0
88
1
save() vs saveAndFlush DB 통신 횟수
0
55
1
순수 JPA 리포지토리 코드 수정부분
0
87
2
bulk연산 후 flush하는 이유를 모르겠어요
0
153
3
bulk insert 질문입니다.
0
186
2
교만했던 것 같아요.
0
147
1
RESTful 강의는 안하시는 건지 궁금합니다.
0
151
2
동적 테이블에 대한 질문
0
87
1
영속성 전이와 연관관계
0
134
2
강의 10:25 질문
0
75
1
단건 update 질문
0
99
2
엔티티 와 도메인의 경계
0
129
1
UsernameOnlyDto 타입 type mismatch 오류
0
122
1





