Jak uzyskać częściowy wynik z konstruktora zapytań doktrynalnych

Mam obiekt produktu, w którym ma tablicę jako atrybuty:

     /**
     * @ORM\OneToMany(targetEntity="Shopious\MainBundle\Entity\ProductPicture", mappedBy="product", cascade={"persist","remove"})
     */
    protected $pictures;

    /** 
    * @Accessor(getter="getCover") 
    */
    private $cover;
    public function getCover()
    {
        if($this->pictures->count() > 0) {
            return $this->pictures[0];
        }
        return new ProductPicture();
    }

Teraz w moim konstruktorze zapytań mam następujący kod:

 $query = $em->createQueryBuilder()->select('p')
            ->from("SiteMainBundle:Product", 'p')
            ->innerJoin('p.category', 'c')
            ->innerJoin('p.shop', 'shop')
            ;

Problem polega na tym, że nie chcę wybierać wszystkich atrybutów p. Chciałem więc tylko uzyskać pierwsze ProductPicture w tablicy obrazów (w moim przypadku powyżej jest to podobne do metody getCover ()). Jak mam to zrobic?

Do tej pory mogę odfiltrować częściowe atrybuty, które chcę:

 $query = $em->createQueryBuilder()->select('p.name, p.id')
                ->from("SiteMainBundle:Product", 'p')
                ->innerJoin('p.category', 'c')
                ->innerJoin('p.shop', 'shop')
                ->innerJoin('p.pictures', 'pictures')
                ;

więc w powyższym przykładzie zrobiłem wewnętrzne zdjęcia na zdjęciach, ale jak mogę uzyskać pierwszy element stąd?

Podsumowując, moje pytanie brzmi: jak wybrać / zapytać pierwszy ProductPicture w tablicy obrazów za pomocą kreatora zapytań? Bo kiedy to robię:

$ query = $ em-> createQueryBuilder () -> select ('p')

zwraca wszystkie atrybuty produktu, ale nie chcę całych atrybutów produktu. Chciałem tylko niektórych z nich, takich jak identyfikator, nazwa itp. Jednak jeden z atrybutów produktu jest w rzeczywistości jednostką (która jest ProductPicture ), więc jak mogę to zwrócić w instrukcji select?

EDYTOWAĆ:

Oto odpowiednik SQL na to, jak obrazy powinny być połączone wewnętrznie:

SELECT * 
FROM  `product` 
JOIN  `product_picture` ON  `product`.id =  `product_picture`.product_id
WHERE  `product`.id =100
LIMIT 1

questionAnswers(2)

yourAnswerToTheQuestion