【问题标题】:Symfony Doctrine fetch EAGER and orderBy combination doesn't workSymfony Doctrine fetch EAGER 和 orderBy 组合不起作用
【发布时间】:2016-08-03 08:26:06
【问题描述】:

我有一个页面树。我想获取一个页面的所有子页面。对于这种情况,我将 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

【问题讨论】:

    标签: php doctrine-orm yaml symfony


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-29
      • 1970-01-01
      • 1970-01-01
      • 2023-02-16
      相关资源
      最近更新 更多