2017-02-25 6 views
1

이미지에 일대 다 관계가있는 제품 엔티티가 있습니다. 제품에 대한 쿼리를 수행 할 때 둘 이상의 이미지가 링크되어 있으면 내 결과에 제품이 두 번 표시됩니다.Symfony querybuilder와 일대 다 관계로 다중 결과를 방지합니다.

 $query = $this->createQueryBuilder('product') 
     ->select('product.id, img.filename') 
     ->leftJoin('product.images', 'img') 
     ->getQuery() 
     ->getResult(); 

이중 제품을 방지하는 방법이 있습니까? 그룹과 비슷하지만 이미지에 있습니다.

+0

엔티티로 제품을 가져 와서 이미지를 얻는 것이 더 간단 할 것입니다. – craigh

+0

어쩌면 성능에 대한 기대는 제품의 모든 정보를 하나의 쿼리로 표시하기를 원할 것입니다. 그래서 쿼리에서 이미지 이름과 URL이 필요합니다. 이 예제는 실제 쿼리로 단순화되었습니다. – Tom

+0

"EAGER"로 관계를 선언 할 수 있다고 생각하고 처음 가져 오기에서 모든 이미지를 수집합니다. – craigh

답변

1

entites 컬렉션으로 결과를 얻고 완전 수분을 피하려면 partial obejcts을 사용할 수 있습니다.

열망하는로드를 사용하면 다른 부분에서 성능 문제가 발생할 수 있으므로 제품을 사용할 때마다 이미지를로드 할 필요가 없습니다.