2010-07-24 7 views
3

doctrine에서 일반 및 페치 간의 차이점은 무엇입니까? 나는 다만 docs를 읽음으로써 그것을 얻지 못한다.Doctrine Regular 대 Fetch join

// regular 
$query = $em->createQuery("SELECT u FROM User u JOIN u.address a WHERE a.city = 'Berlin'"); 
$users = $query->getResult(); 

// fetch 
$query = $em->createQuery("SELECT u, a FROM User u JOIN u.address a WHERE a.city = 'Berlin'"); 
$users = $query->getResult(); 

무엇을 가져 오기 결합의 목적은 무엇입니까? 만약 내가 select u, a이라면 나는 단지 users ($users = $query->getResult();)이 될까? 일반 조인을 사용하는 경우 $user->getAddresses()을 사용하여 관련 객체에 액세스 할 수 있습니까?

답변

8

나는 문서가 그것을 아주 잘 묘사한다고 생각한다. 가져 오기 조인을 사용하면 관련된 엔티티가 수화 결과에 포함됩니다. 그렇지 않으면 액세스하지 못하며 액세스하려고하면 다른 쿼리를 실행하여 정보를 가져옵니다.

결과에 포함되어야하는지 여부는 단순히 문제입니다.

+0

오, icic, 나는 그 부분을 문서를 읽지 못했습니다. 그래서 나는 내가 성능 관련 이유로 관련 객체를 사용하고 싶다는 것을 알았다면 내가 가져온 결합을 가져올 것이라고 생각한다. –

+0

그것은 생각입니다. –