Doctrine 2.2 имеет систему фильтрации , которая позволяет разработчику добавлять SQL к условным предложениям запросов независимо от места, где генерируется SQL (например, из запроса DQL или путем загрузки связанных сущностей) .
Функциональность фильтра работает на уровне SQL. Сгенерирован ли SQL-запрос в Persister, во время отложенной загрузки, в дополнительных отложенных коллекциях или из DQL. Каждый раз, когда система выполняет итерацию по всем включенным фильтрам, добавляя новую часть SQL в качестве фильтра, возвращается.
Добавляя SQL к условным предложениям запросов, система фильтрации отфильтровывает строки, принадлежащие объектам, на уровне набора результатов SQL. Это означает, что отфильтрованные объекты никогда не гидратируются (что может быть дорого).