Bonjour à tous et à toutes,
Je fais un peu le bilan de mes requêtes dans mon application et je m'aperçois que j'en fais un petit peu trop alors que cela pourrait être plus concis (notamment la faute à l'utilisation conjointe de setMaxResults() et de left join, mais ne crachons pas dans la soupe).
Dans l'idée de simplifier et de réduire le nombre de requêtes, j'ai besoin d'une fonction dans mon Foo repository qui me permettrait de récupérer UNIQUEMENT un id (et pas une entité Foo) avec des JOIN par dessus
J'ai tenté ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 public function getIdInChevreAndMouton($chevreId, $moutonId) { return $this ->createQueryBuilder('SELECT partial f.{id} FROM Foo f') ->leftJoin('f.chevre', 'che') ->leftJoin('f.mouton', 'mou') ->where('mou.id = :moutonId') ->andWhere('che.id = :chevreId') ->andWhere('f.isHappy = false') ->setParameter('chevreId', $chevreId) ->setParameter('chevreId', $chevreId) ->getQuery()->getSingleScalarResult(); }
Malheureusement, cela me retourne une syntax error. J'ai également essayé de virer le mot clé PARTIAL mais ça ne fonctionne toujours pas.
Une idée pour récupérer l'id de mon Foo ?
Merci d'avance
Partager