Querydsl: divide los resultados en dos o más objects

Tengo una consulta que devuelve una list de objects (por ejemplo, Employee ) y me gustaría agregar el count(*) total sin pagination count(*) de los resultados al lado. Algo como:

 +---+-------------------+-------------+------------+ | | id | age | total | +---+-------------------+-------------+------------+ | 1 | 1234 | 24 |12 | | 2 | 154367 | 61 |12 | | 3 | 9485048386 | 36 |12 | +---+-------------------+-------------+------------+ 

Lo que obtendría al emular una consulta como:

 SELECT * , COUNT(*) OVER() AS total FROM employee LIMIT 3 OFFSET 0 

¿Cómo puedo consultar este tipo de datos y recuperar una List<Employee> y un singular Long para el total ? Actualmente, tengo esto en marcha, pero no estoy seguro de cómo expandirlo para la nueva columna / valor total :

 projection = Projections.constructor(Employee.class, qEmployee.id, qEmployee.age); select(projection).from(qEmployee).where(foobar).offset(0).limit(3); 

    Pude lograr esto agregando la SQLExpression necesaria para la function de window a la de select(...) . La consulta ahora devuelve un List<Tuple> donde el primer elemento de Tuple es mi object Employee , y el segundo es el total :

     projection = Projections.constructor(Employee.class, qEmployee.id, qEmployee.age); List<Tuple> results = select(projection, SQLExpressions.count().over()).from(qEmployee).where(foobar).offset(0).limit(3);