Ekspresi kelas dasar tidak memungkinkan Anda untuk menerapkan agregasi. Jika Anda perhatikan, klausa Anda yang lain sebenarnya mengembalikan NumberExpression. Yang perlu Anda lakukan adalah menggunakan tipe itu alih-alih Ekspresi. Jadi kode Anda bisa menjadi:
NumberExpression<Integer> sourceCases = qTable.source.
when(matchedValue1).then(new Integer(1)).
otherwise(new Integer(0));
NumberExpression<Integer> newAccountCases = qTable.isNew.
when(matchedValue2).then(new Integer(1)).
otherwise(new Integer(0));
return queryDslJdbcTemplate.queryForObject(sqlQuery,
new Mapping(qTable.filed1,
qTable.filed2,
qTable.id.count(),
sourceCases.sum(),
newAccountCases.sum());