Symfony Doctrine获取EAGER和orderBy组合不起作用

时间:2016-08-03 08:26:06

标签: php doctrine-orm yaml symfony

我有一个页面树。我想获得一个页面的所有子页面。对于这种情况,我将fetch: Eager添加到我的yaml文件中。我也想根据他们的位置订购子页面。但fetch似乎毁了一切。它确实降低了执行的总查询量,但子页面不再按其位置排序。

这部分在我的yaml文件中,用于Page实体:

oneToMany:
    pages:
        targetEntity: Page
        mappedBy: parentPage
        fetch: EAGER
        orderBy: { position: ASC }

任何想法如何获取页面的所有页面,但仍然按位置排序?页面树可以嵌套超过1级。

- page_1
    page_1_1
    page_1_2
        page_1_2_1
        page_1_2_2
- page_2

1 个答案:

答案 0 :(得分:0)

我有类似的问题。当我使用获取模式时,EAGER doctrine创建一个带有左连接而不是两个查询的查询,并在没有通知的情况下静默忽略排序。解决方案是使用LAZY模式,但是效果不太好。