Doctrine2: Seleccionar campo como Hidden

Esta funcionalidad se añadió en Doctrine2.2 y que puede resultar bastante útil. Lo que nos permite esta funcionalidad es marcar expresiones Select escalares como Hidden y no se hidratarán. ¿Qué significa esto?

Es mucho más sencillo con un ejemplo:

En el SELECT se hace la suma de los artículos para así después poder ordenar por ese valor y también usarlo en el HAVING, pero el problema está en que si no usáramos HIDDEN, esta consulta devolvería una colección compuesta por arrays que contendrían por un lado un objeto User y por otro el número de artículos.

Con HIDDEN esta consulta devolverá una colección de usuarios y numArticles no forma parte del resultado, pero sí lo podemos usar dentro de la consulta.

Un par de ejemplos más donde se puede usar HIDDEN:

O podemos incluso usar CASE: