【问题标题】:Doctrine 2 Optimizing vote entities学说 2 优化投票实体
【发布时间】:2012-03-11 19:32:04
【问题描述】:

我正在尝试找到针对多个父实体实施赞成/反对投票的最佳方式。

目前我正在使用InheritanceType("SINGLE_TABLE") 进行投票,子类中有父关系。我也在使用:fetch="EXTRA_LAZY" - 主要是为了在从父实体的角度计票时,我可以在不加载完整投票实体的情况下执行 count()

我的问题是我不想为每个父关系实现单独的 UpVote 和 DownVote 实体类,而是在投票基类中使用 value 字段。最好我想以某种方式在延迟加载的 ArrayCollection 上运行$qb->expr()->sum(),类似于count()。 (这样总和可以直接使用父实体直接从数据库返回为标量,无需实体管理器,或者必须将每个投票实体加载到总和 - 视图脚本中的 E.G)

支持吗? (或者如何达到我想要的效果?)

不确定上述是否是解决此问题的最佳方法 - 欢迎使用 Doctrine 2 进行投票的替代最佳实践示例!

*编辑:固定 LAZY -> EXTRA_LAZY

【问题讨论】:

    标签: php database doctrine doctrine-orm sum


    【解决方案1】:

    延迟加载在尝试计数时仍会加载所有对象。使用 EXTRA_LAZY 将在计数对象时发出计数语句,而不是全部加载。

    【讨论】:

    • 虽然评论很有用,但并不能真正回答我的问题
    • 您是否考虑过使用 DQL 和存储库,而不仅仅是使用默认行为?
    • 对于我的特殊情况,我必须将实体管理器注入到我的视图中,我真的不想这样做
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-11
    • 2011-07-19
    相关资源
    最近更新 更多