NamedQuery com Group By e sua aplicação em DataTable

Boa noite amigos,

Estou encontrando algumas dificuldades em implementar algo que me parece ser simples. Vejam se podem me ajudar.

Meu Objetivo:

  • Criar um dataTable com base em um list que é gerado por uma namedQuery que contem um group by.

Entre as várias tentativas, a que mais se aproximou foi está.

1 - NamedQuery

  @NamedQuery(name = "GeEspera.searchByProcesso"  ,query = " select a.empresa,a.fgProcessado,count(a) from GeEspera a GROUP BY a.empresa, a.fgProcessado ")

2 - Meu controlador - ManagedBean


    
    public String executaConsulta (){
        try{
            resultList = dao.findList("GeEspera.searchByProcesso", null);
            return "callFormBilhetagemSuccess";
        }catch(Exception ex){
            ex.printStackTrace();
            return "callFormBilhetagemError";
        }
    }

3 - Meu data Table ( Pagina JSF )

 <r:dataTable value="#{GeController.resultList}"
                                                     var="grid"
                                                     id="grid"
                                            <r:column>
                                                <f:facet name="header">
                                                    <h:outputText value="#{bundle.textCompany}"/>
                                                </f:facet>
                                                <h:outputText value="#{grid.fgProcessado}"/>
                                            </r:column>
                                        </r:dataTable>

Quando executo , encontro o seguinte erro:
javax.servlet.ServletException: For input string: “fgProcessado”

No jsf , se ao inves de colocar <h:outputText value="#{grid.fgProcessado}"/> eu colocar <h:outputText value="#{grid}"/> não dá erro. Porém ele retorna um object ( [Ljava.lang.Object;@2c502a ) e eu não sei como converte-lo. Enfim, tô apanhando com isso e gostaria de contar com a ajuda de vocês.

A segunda tentativa foi :

1 - Criei esta classe

public class Temp {


    private GeEmpresa empresa;
    private String nome;
    private long valor;

  
    /**/
    public Temp(GeEmpresa empresa, String nome, long valor) {
        this.empresa = empresa;
        this.nome = nome;
        this.valor = valor;
    }

Get e Set

2 - NamedQuery ficou assim

  @NamedQuery(name = "GeEspera.searchByProcesso"  ,query="select new br.com.nuwe.tamandua.model.ge.Temp( a.empresa,a.fgProcessado,count(a)) from GeEspera a GROUP BY a.empresa, a.fgProcessado ")

3 - Meu controlador - ManagedBean ( Ficou Igual ) - Agora temos um retorno do tipo TEMP certo ?


    
    public String executaConsulta (){
        try{
            resultList = dao.findList("GeEspera.searchByProcesso", null);
            return "callFormBilhetagemSuccess";
        }catch(Exception ex){
            ex.printStackTrace();
            return "callFormBilhetagemError";
        }
    }

4 - Meu data Table ( Pagina JSF ) mudou. Agora ao inves de grid.fgProcessado ficou grid.nome conforme a classe Temp.

 <r:dataTable value="#{GeController.resultList}"
                                                     var="grid"
                                                     id="grid"
                                            <r:column>
                                                <f:facet name="header">
                                                    <h:outputText value="#{bundle.textCompany}"/>
                                                </f:facet>
                                                <h:outputText value="#{grid.nome}"/>
                                            </r:column>
                                        </r:dataTable>

Agora o erro é:
Local Exception Stack:
Exception [EclipseLink-6137] (Eclipse Persistence Services - 1.0.1 (Build 20080905)): org.eclipse.persistence.exceptions.QueryException
Exception Description: An Exception was thrown while executing a ReportQuery with a constructor expression: java.lang.NoSuchMethodException: br.com.nuwe.model.tamandua.ge.Temp.(br.com.nuwe.model.tamandua.ge.GeEmpresa, java.lang.String, java.lang.Long)
Query: ReportQuery(br.com.nuwe.model.tamandua.ge.GeEspera)

Muito obrigado pela atenção.
Att.

Boa noite amigos,

A segunda alternativa funcionou. Só alterei a query. O count ao inves de ficar count(a) ficou count(a.id) e aí funcionou.
Obrigado a todos.