Symfony2 Doctrine pobiera losowy produkt z kategorii

Mam następujący schemat bazy danych:

table 'products'
id
category_id

i oczywiście tabela kategorii, tylko z identyfikatorem.

Dane wyglądają mniej więcej tak:

Products
--------------------
| id | category_id |
--------------------
| 0  | 1           |
| 1  | 1           |
| 2  | 1           |
| 3  | 2           |
| 4  | 2           |
| 5  | 1           |
--------------------

Chciałbym wybrać kategorię (na przykład kategorię 1), więc zaznaczam wszystkie wiersze z tej kategorii w mojej klasie repozytorium produktu:

return $this
    ->createQueryBuilder('u')
    ->andWhere('u.category = :category')
    ->setMaxResults(1)
    ->setParameter('category', $category->getId())
    ->getQuery()
    ->getSingleResult()
;

Jak mogę teraz wybrać losowy produkt? Ponadto: Czy jest możliwe rozwiązanie tego problemu za pomocą relacji?

Mam relację OneToMany między podmiotami „Kategoria” i „Produkt”, więc mogłem również uzyskać wszystkie produkty za pośrednictwem kategorii-> getProducts () ...

Każda pomoc byłaby naprawdę przydatna, dzięki

questionAnswers(2)

yourAnswerToTheQuestion