【发布时间】:2019-02-15 09:27:48
【问题描述】:
假设我有一个实体。
class Building {
List<Floor> floors;
List<Elevator> elevators;
}
为了简单起见,Floor and Elevator 只有id。并且大楼有id, elevator_id, floor_id
因此,获取所有楼层和所有电梯的所有建筑物的查询将是:
select
id,
floor.id as floor_id,
elevator.id as elevator_id
from building
left join floor on (floor.building_id = building.id)
left join elevator on (elevator.building_id = building.id)
现在假设我有 1 栋有 2 层楼和 2 部电梯的建筑物。查询将给出如下结果集:
id|floor_id|elevator_id
1 f1 e1
2 f2 e2
1 f1 e2
2 f2 e1
所以 4 条记录。解析方式:
- 不是逐行,而是逐列。
- 分别创建每个实体
- 删除重复项
- 将所有实体合并到适当的结构中。
所以问题是 - 有没有更好的方法来解决这个问题? ORM 是否也做同样的事情?
没有寻找特定的库,因为我试图弄清楚它是如何工作的。
【问题讨论】: