작성
·
304
0
섹션 11. 객체지향 쿼리 언어2- 중급 문법 내의 "페치 조인1 - 기본" 강의를 듣고 작성하는 질문입니다.
안녕하세요 :)
https://www.inflearn.com/questions/164472
https://www.inflearn.com/questions/170331
Q1)
제가 헷갈리는 부분과 관련해서 질문들이 있길래 다 살펴봤지만, 제가 명확하게 이해한 것인지 확신을 할 수 없어서 이렇게 질문 남깁니다.
일반 조인 -> 두 객체를 돌려받음, 객체 그래프 채워짐
(객체 그래프가 채워질 꺼라 생각한 이유는, https://www.inflearn.com/questions/170331 의 강사님 답변 "Object[]은 각각 따로 조회하기 때문에 이런 부분을 처리할 때 작업 공수가 많이 들어갑니다." 이 내포하는 뜻이 두 조인의 내부적인 동작에서는 차이가 있지만 결과는 똑같다고 생각해서입니다.)
페치 조인 -> 한 객체를 돌려받음, 객체 그래프 채워짐
제가 이해한 내용이 맞을까요?
Q2)
일반 조인시에도 객체 그래프가 채워지는 지 확인하기 위해서, 코드를 직접 짜서 테스트를 돌려봤는데 이해하기 힘든 쿼리가 나가서 추가적으로 질문 남깁니다.
(위의 질문에 대한 답변과 유사성이 있을까싶어, 한 질문란에 두개의 질문을 남깁니다. 아니라면 죄송합니다 ㅠㅠ)
해당 테스트 관련 코드와 결과화면을 첨부해두겠습니다.
일반 조인을 통해 작성한 쿼리를 em.createQuery()... 를 통해 결과리스트를 반환받고 하나씩 반복문을 통해 돌려보는데, select query가 추가로 나가는 것을 발견했습니다.
member 에서 team 을 조회할 때는 쿼리가 추가로 발생하지 않는데, team에서 member를 조회할 때에 쿼리가 추가로 발생합니다.
처음 작성한 query를 통해 member를 다 받아왔을텐데, 왜 team에서 member를 조회할 때 쿼리가 추가로 발생할까요..?
고민해봐도 모르겠어서 질문 남깁니다.
감사합니다.
답변 1
0
안녕하세요. 이원태님
일반 조인 -> 두 객체를 돌려받음, 객체 그래프가 채워지지 않은 상태로 조회됩니다.
페치 조인 -> 한 객체를 돌려받음, 객체 그래프 채워짐
감사합니다.
답변 감사합니다 :)
다만, 이해가 안되는 부분이 한 군데 있어 댓글로 다시 질문드립니다.
일반조인 시에, 객체 그래프가 채워지지 않은 상태로 조회된다면
처음 질문때의 첨부해드린 코드의 예시에서,
member(findMember) 에서 team 을 조회할 때 select 쿼리가 나가야 할 것 같은데 왜 나가지 않았을까요..
제가 아무래도 객체 그래프가 채워지지 않았다는 의미를 오해하고 있는 것 같은데, 의미를 알려주실수 있으실까요?
감사합니다