Doctrine 2.2 имеет filter system, который позволяет разработчику добавлять SQL в условные предложения запросов независимо от места, где создается SQL (например, из DQL-запроса или путем загрузки связанных объектов).
Функциональность фильтра работает на уровне SQL. Создается ли SQL-запрос в Persister, при ленивой загрузке, в дополнительных ленивых коллекциях или из DQL. Каждый раз, когда система выполняет итерацию по всем включенным фильтрам, добавление новой части SQL в качестве фильтра возвращается.
Добавляя SQL к условным предложениям запросов, фильтрационная система отфильтровывает строки, принадлежащие сущностям на уровне набора результатов SQL. Это означает, что отфильтрованные объекты никогда не гидратируются (что может быть дорогостоящим).
-1: Это не функциональность [Hibernate Filters] (http://docs.jboss.org/hibernate/orm/3.6/reference/en-US/html/filters.html). –
Серьезно? Ты собираешься опросить ответ, которому 3 года? В то время у доктрины даже не было фильтров. Вместо этого вы могли бы отметить это как устаревшее. – Travis