订购“子级别”记录 - ORM

时间:2013-08-08 10:48:33

标签: oop orm

假设我们使用像Doctrine和Symfony2这样的ORM作为框架。

以这种方式有三个实体(A,B,C)相关的eache:

A --[1-m]-- B
B --[m-1]-- C

现在让我们说C有一个属性(表格列)告诉我们C记录的正确顺序(出于用户显示目的)。
最后,我们使用ORM获取了A类型的对象。

对于从C开始订购的返回A对象,最佳方法(如果有)是什么?我是否要编写自定义查询,以及丢失ORM特征?

注意

如果您没有遇到问题,请记住,对于检索C对象,您必须传递B个对象,这些对象可以按照订单字段{{{ 1}}对象,当然,“复制”顺序也是C对象不是一个好的解决方案

1 个答案:

答案 0 :(得分:0)

SELECT a, b, c
FROM Mapping:EntityA a
JOIN a.b b
JOIN b.c c
ORDER BY b.prop1 ASC, c.prop1 ASC

这就是真的。属于c's的所有b都是有序的,而属于b's的所有a也是有序的。