inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실전! 스프링 데이터 JPA

@EntityGraph

EntityGraph 이용시 컬렉션 페치조인의 경우 질문

해결된 질문

441

요니

작성한 질문수 41

1

안녕하세요!

JPQL로 엔티티 페치조인이 아닌 , 일대다 입장에서 컬렉션 페치조인을 할 경우 -> 데이터 뻥튀기 문제가 발생하여 distinct 키워드로 뻥튀기된 데이터를 없애주어야 했느데요 ,

EntityGraph를 이러한 컬렉션 페치조인에 사용하여도 distinct를 쓴것 처럼 데이터 뻥튀기 문제가 발생하지 않는지 궁금합니다.

감사합니다.

spring java JPA spring-boot

답변 1

0

y2gcoder

안녕하세요. 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

y2gcoder

저도 찾아본 결과 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