Symfony学说获取EAGER和orderBy组合不会';不起作用


Symfony Doctrine fetch EAGER and orderBy combination doesn't work

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

这部分在我的页面实体的yaml文件中:

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

我也有类似的问题。当我使用获取模式时,EAGER原则会创建一个带有左联接的查询,而不是两个查询,并在没有通知的情况下忽略排序。解决方案是使用LAZY模式,但确实效果较差。