построитель запроса доктрины присоединяется к материализованному представлению

используя Symfony 3.2.4, doctrine и postgres 9.6, у меня есть 2 таблицы с большими данными, и мне нужно получить записи таблицы результатов соединения (с функцией sql es: sum, avg и т. д.) в приемлемое время.

Ну, я создал материализованное представление, и теперь оно очень быстрое!

ДА УЖ!

Но … как я могу выполнить запрос DQL с Doctrine / Symfony ??

Я пытался создать сущность из материализованного представления, но он не обнаружен.

D: \ eclipse_neon_workspace \ myproject> php bin \ console
доктрина: отображение: импорт аннотации BackendBundle
—filter =
База данных не имеет картографической информации.

Итак, я попытался написать простой запрос, но доктрина ожидает связку сущностей …

[2017-04-03 23:13:37] request.CRITICAL: необработанное исключение PHP
Doctrine \ ORM \ Query \ QueryException: «[Семантическая ошибка] строка 0, столбец 80
около ‘Stats’: Ошибка: класс ‘Stats’ не определен. «at
D: \ eclipse_neon_workspace \ MyProject \ поставщика \ доктриной \ ORM \ Lib \ Doctrine \ ORM \ Query \ QueryException.php
строка 63 {«исключение»: «[объект] (Doctrine \ ORM \ Query \ QueryException (код: 0): [Семантическая ошибка] строка 0, столбец 80 рядом с «stats»: ошибка: класс «Stats»
не определен. в
D: \ eclipse_neon_workspace \ MyProject \ поставщик \ доктрина \ ORM \ Lib \ Doctrine \ ORM \ Query \ QueryException.php: 63,
Doctrine \ ORM \ Query \ QueryException (код: 0): ВЫБРАТЬ
stasgeojson (l.geom) как geom ОТ BackendBundle: MyTable l LEFT
ПРИСОЕДИНЯЙТЕСЬ Статистика Статистика С stats.key = l.key ГДЕ l.filter
в (77004) в
D: \ eclipse_neon_workspace \ MyProject \ поставщика \ доктриной \ ORM \ Lib \ Doctrine \ ORM \ Query \ QueryException.php: 41) «}
[]

Как, черт возьми, я использую материализованное представление с учением ????

Спасибо заранее

0

Решение

Наконец, я не нашел решений … DQL не поддерживает VIEW или MATERIALIZED VIEW, и нет ничего для генерации сущностей из этих объектов.

Итак, я создал простой $ em-> createNativeQuery с использованием собственного SQL, и все это работает, но я думаю, что это немаловажный пробел

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]