Doctrine 2 ORM – duplicitné entity z JOIN dotazu vrátené len 1 raz
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- sabrx
- Člen | 47
Mám JOIN dotaz, ktorý vracia entitu jednej tabuľky a časť druhej, ale ak sa rovnaká entita vyskytuje vo viacerých zhodách, nie sú vrátené všetky tieto zhody, ale iba jedna. Doctrine tie ostatné zhody vyradí zrejme kvôli efektivite. Pri použití $query->getArrayResult() namiesto $query->getResult() sú vrátené všetky zhody, takže dotaz je správny, ibaže potrebujem výsledok ako objekty. Dá sa nejako nastaviť, aby boli takto vrátené všetky zhody?
<?php
SELECT u.duel_id, u.id, u.username, u.avatar
FROM user u
INNER JOIN instance g0_ ON u.id = i.user_id
WHERE i.duel_id IN (?)
?>
Príklad:
User
id
5
Instance
id | duel_id | user_id
1 | 10 | 5
2 | 18 | 5
getArrayResult() vráti 2 zhody, ale getResult() len jednu, lebo ide o rovnakú User entitu, potrebujem avšak obe.
- David Matějka
- Moderator | 6445
obrat to – k instance joinuj usera..
doctrine ti pro jeden radek nikdy nevytvori 2 instance