Исправление ошибки Not all identifier properties can be found in the ResultSetMapping

Сегодня пол дня потратил на исправлние ошибки, которая возникла после обновления Doctrine 2.1 -> 2.2. В принципе потом все разрешилось благополучно, но мозг как всегда поломать пришлось.

Проблема

Мне в почту свлился тикет с ошибкой вот такого содержания.

Причем код спотыкался на простейшем запросе. Пару дней назад мы обновили Doctrine, а в её репозитарий прилетел вот такой замечательный pull-request. Разработчик решил переименовать SqlWalker в OutputWalker и сделать ещё ряд работ. ПОдробнее читайте в коммите. Так вот после этого коммита пагинатор работать перестаёт, и вываливается с этой ошибкой. Пришлось файл за файлом смотреть diff’ы и искать в чём может быть подвох.

Подвох обнаружился в том, что ранее строка в методе count() была такая:

Теперь же управление идёт по другой ветви в:

Решение

Чтобы восстановить работу пагинатора достаточно изменить параметр (setUseOutputWalkers()), выбирающий ветку вот так:

После этого работа пагинатора была восстановлена.

 

2 Comments

  1. Замечу, что если не использовать Doctrine, то и ошибки не было бы 🙂

Leave a Comment