sql >> Database teknologi >  >> RDS >> Mysql

Summen af ​​Case Builder-udtryk i QueryDSL

Basisklassen Expression tillader dig ikke at anvende aggregeringer. Hvis du bemærker, returnerer din ellers klausul faktisk NumberExpression. Alt du skal gøre er at bruge den type i stedet for Expression. Så din kode kan blive:

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. Fejl ved push af data til Heroku:tidszoneforskydning uden for rækkevidde

  2. Tips til migrering fra MySQL-replikering til MySQL Galera Cluster 4.0

  3. localhost vs. 127.0.0.1 i mysql_connect()

  4. Homebrew postgres knækket