sql >> Databáze >  >> RDS >> Mysql

Součet výrazu tvůrce případů v QueryDSL

Základní třída Expression vám neumožňuje použít agregace. Pokud si všimnete, vaše klauzule jinak ve skutečnosti vrací NumberExpression. Vše, co musíte udělat, je použít tento typ místo Expression. Takže váš kód by se mohl stát:

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());



  1. Co znamenají znaky \x1a

  2. Je povinný parametr recovery_target_timeline='latest' při přepínání a přepínání v PostgreSQL 9.4.1?

  3. Použití korelační funkce PostgreSQL

  4. ora:00936 Chyba chybějícího výrazu