原则2 DQL——如何选择单向多对多查询的反面?
我有两个类 - Page和SiteVersion,它们有很多对多的关系。只有SiteVersion知道这种关系(因为该网站是模块化的,我希望能够带走并放入SiteVersion所属的模块中)。
因此,我如何根据SiteVersion的标准选择页面?
例如,这不起作用:
SELECT p FROM SiteVersion v JOIN v.pages p WHERE v.id = 5 AND p.slug='index'
我收到错误:
[Doctrine\ORM\Query\QueryException]
[Semantical Error] line 0, col -1 near 'SELECT p FROM': Error: Cannot select entity through identification variables without choosing at least one root entity alias.
即使我可以使用此查询选择“v”。
我想我可以通过为关系引入一个类(PageToVersion类)来解决这个问题,但是有没有办法不这样做,或者让它成为双向的?