Ajuda Query com group by

3 respostas
lucasbf1992

Boa noite pessoal estou começando a trabalhar com hibernate e necessito de uma ajuda para criar uma query com goup by e count

[img]https://www.filepicker.io/api/file/HwZBoKbhSzuP2JEI4W9X[/img]

Preciso criar uma query para retornar quantas vezes um solicitante abriu um processo, de acordo com alguns materiais que li criei o seguinte codigo, porem esta dando erro

List<Solicitante> solicitante = (List<Solicitante>) sessao.createQuery(
                "Select p.solicitante.id as id, "
                + "      p.solicitante.nome as Nome,"
                + "      p.solicitante.sobrenome as sobrenome,"
                + "      p.solicitante.setor.descricao as setor,"
                + "      count( *)"
                        
                + "from Processo p group by p.solicitante.id,"
                + "p.solicitante.nome,"
                + "p.solicitante.sobrenome,"
                + "p.solicitante.setor.descricao,"
                + "count( *)"
                ).list();

3 Respostas

lucasbf1992

porém esta dando o seguinte erro

Caused by: org.postgresql.util.PSQLException: ERRO: agregação não é permitida na cláusula GROUP BY

Posição: 144

at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2103)

at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1836)

at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)

at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:512)

at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:388)

at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:273)

at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:186)

at org.hibernate.loader.Loader.getResultSet(Loader.java:1787)

at org.hibernate.loader.Loader.doQuery(Loader.java:674)

at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)

at org.hibernate.loader.Loader.doList(Loader.java:2220)

 84 more
A

O count, que é a função de agregação mencionada no erro, fica de fora do group by.

Remova a linha 12 do seu código e a vírgula no final da linha 11.

lucasbf1992

cara corrigi, porém esta aparecendo o seguinte erro agora

javax.faces.FacesException: #{solicitanteBean.relatorioSolicitanteMaisChamadas()}: net.sf.jasperreports.engine.JRException: Error retrieving field value from bean

Criado 21 de julho de 2014
Ultima resposta 21 de jul. de 2014
Respostas 3
Participantes 2