我正在尝试找到与多个父实体相关的实施上/下投票的最佳方式。
目前我正在使用InheritanceType("SINGLE_TABLE")
进行投票,子类中有父关系。我也在使用:fetch="EXTRA_LAZY"
- 主要是为了在从父实体角度计算投票时我可以在不加载完整投票实体的情况下执行count()
。
我的问题是我不想为每个父关系实现单独的UpVote和DownVote实体类,而是在投票基类中使用值字段。我希望以某种方式在延迟加载的ArrayCollection上运行$qb->expr()->sum()
,类似于count()
。 (这样总和可以直接使用父实体直接从数据库返回,不需要实体管理器,或者必须将每个单独的投票实体加载到总和 - E.G在视图脚本中)
支持吗? (或者如何达到我想要的效果?)
不确定以上是否是解决此问题的最佳解决方案 - 使用Doctrine 2欢迎投票的替代最佳实践示例!
* 修改:修正了LAZY - > EXTRA_LAZY
答案 0 :(得分:1)
延迟加载仍会在尝试计数时加载所有对象。使用EXTRA_LAZY将在计算对象时发出count语句,而不是全部加载它们。