2017-09-12 10 views
0

オブジェクトのリスト(たとえばEmployee)を返すクエリがありますが、その結果の一部が非ペーストのcount(*)に追加されます。私はのようなクエリをエミュレートするからになるだろうQuerydsl - 結果を2つ以上のオブジェクトに分割します

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

:ような何か

私はこのタイプのデータの照会と List<Employee>totalのための特異 Longを取得するにはどうすればよい
SELECT * , COUNT(*) OVER() AS total 
FROM employee 
LIMIT 3 
OFFSET 0 

?現在、私はこの起こっているが、私は新しいtotal列/値のためにそれを拡張するかどうかは不確かだ:私はselect(...)に窓関数のために必要なSQLExpressionを追加することによって、これを達成することができました

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

答えて

0

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); 
:クエリは今タプルの最初の要素が私の Employeeオブジェクトであり、第二は totalある List<Tuple>を返します。
関連する問題