Допустим, у меня есть сущность.
class Building {
List<Floor> floors;
List<Elevator> elevators;
}
Для простоты у пола и лифта есть только 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 делает то же самое под капотом или нет?
Не ищу конкретную библиотеку, так как я пытаюсь выяснить, как она работает.