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

MHa*_*eld 6 php yaml symfony doctrine-orm

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

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

oneToMany:
    pages:
        targetEntity: Page
        mappedBy: parentPage
        fetch: EAGER
        orderBy: { position: ASC }
Run Code Online (Sandbox Code Playgroud)

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

- page_1
    page_1_1
    page_1_2
        page_1_2_1
        page_1_2_2
- page_2
Run Code Online (Sandbox Code Playgroud)

小智 0

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