¿Cómo debo usar Hibernate Mapping mientras trato con una tabla de datos enorme?

Definición del problema:
Tengo una tabla de base de datos con una gran cantidad de datos (más de 100,000 filas), la estructura de la tabla es como

AppID  DocID  DocStatus 
1      100    0
1      101    1    
2      200    0    
2      300    1

Por ID de aplicación puede haber miles de documentos, tengo que buscar el recuento de los documentos con estado 0 y el recuento de los documentos con estado 1 agrupados por ID de aplicación.

Cuando estoy mapeando este objeto usando hibernate, consumirá mucha memoria de montón debido a la gran cantidad de datos de la tabla.

¿Cómo puedo lograr esto usando la consulta de Hibernate? O ¿Debo usar la consulta SQL o el procedimiento almacenado para esto?

Nota : Mi aplicación web está en el marco JAVA / Tapestry y usa Hibernate 3. La base de datos es SQL Server 2012.