• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

fetch join에 관련하여 문의드립니다.

22.08.22 16:36 작성 조회수 207

0

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.

1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
안녕하세요 fetch join 과 join에 관련하여 문의드립니다.
fetch join 시 fetch join 뒤에 붙은 엔티티객체에 별칭을 사용 할 수 없는 걸로 알고 있습니다.
ex) select o from Order o join fetch o.member m 에서 o.member 뒤에 m 사용 불가로 알고 있습니다.
 
그럼 만약 Member Entity에서 name이 userA라는 사람이라는 조건을 주고 싶은 경우
select o from Order o join fetch o.member m where m.member_id = 'userA' 와 같이 사용 하면 안되고
join 쿼리로 SELECT o from Order o join o.member where m.member_id = 'userA' 와 같이 사용 해야 되는지 문의드립니다.
 
select o from Order o join o.member where m.meber_id = 'userA' 와 같이 사용 하는 경우 order 엔티티에 있는 member 단일 연관 관계에서 name 을 가져오는 경우 초기화가 되어 쿼리문이 다시 나가는 걸로 알고 있습니다.
 
그래서 한번쿼리문과 조건을 같이 사용하기위해서 DTO로 직접 받아오는게 맞는지도 궁금합니다.
 
감사합니다.

답변 1

답변을 작성해보세요.

0

y2gcoder님의 프로필

y2gcoder

2022.08.22

안녕하세요. onil11님, 공식 서포터즈 y2gcoder입니다.

먼저 fetch join 에서 별칭을 사용하면 안되는 이유를 영한님께서 자세하게 설명하신 링크를 첨부하겠습니다. 

https://www.inflearn.com/questions/15876

그리고 질문에 대해 생각해보니 저는 말씀하신 것 처럼 일반 sql을 사용하거나, 아니면 

member를 중심으로 order를 불러오는 JPQL을 사용해볼 것 같습니다. 

감사합니다.