在Doctrine2,有没有方法来创建一个计算实体,是基于一个复杂的SQL查询的结果?计算实体,在Doctrine2中?
背景:
在我正在开发的应用(存在我加入该项目之前),有一个概念: 属性(属于属性,有许多属性,覆盖属性) catalogItem(属于catalogItem,有很多catalogItem,有很多属性)
这个想法是,catalogItem有它自己的层次结构,目前深度达4层。 每个catalogItem都继承它的父项的属性,但是这些属性(也有它们自己的层次结构)可以在任何时候覆盖。 这个被重写的层次结构然后被直接的catalogItem使用,并且它也是子对象,具有创建覆盖的相同能力。
结果,直接关联的典型结构是相当无用这里,因为我们总是需要看到计算的最终结果。
所以,我的问题是,我希望能够注入这些计算结果为Doctrine2,然后可以作为标准的实体,遍历的关系,等等这些能力,为正常。
这不能做一个MySQL的看法,如性能下降。此外,创建计算结果的查询相当复杂,并且对于性能,任何过滤(例如,通过X catalogItem)都会发生在第三级嵌套子查询以及顶级查询以及子查询的存在意味着正常的MySQL视图直接不兼容(尽管有解决方法)。
问题:
我希望能在Doctrine2创建一个实体,它不是一个“表”现有的实际MySQL查询将存在,并会运行一个子查询。 我还没有看到任何方式在Doctrine2中实现类似于我所描述的内容,我希望有人可以提出解决方案或解决方法来实现类似的结果?
请注意,我已经将我复杂的SQL查询设置为Doctrine2原生查询,并将其映射到结果的实体中。但这并不是我想要的,因为它并不是一个可以与之相关的实体。我正在寻找一个允许计算实体作为普通Doctrine2实体的结果。 – 2013-03-23 22:27:10