Amigos,
Seguinte como resolver este problema ?
Tenho uma jsp (JSF) com uma dataTable da seguinte forma:
                <h:dataTable value='#{lancamento.lancamentosProvisionado}' rendered="#{lancamento.lancamentosProvisionado != null}" var='item' border="1" cellpadding="2" cellspacing="0" style="font-size:8pt;">
                    <h:column>
                        <f:facet name="header">
                            <h:outputText value="Id"/>
                        </f:facet>                                                
                        <h:outputText value="#{item.idTitulo.id}"/>
                    </h:column>
                    <h:column>
                        <f:facet name="header">
                            <h:outputText value="Credor"/>
                        </f:facet>                                                
                        <h:outputText value="#{item.idTitulo.idCredor.nome}"/>
                    </h:column>
                    <h:column>
                        <f:facet name="header">
                            <h:outputText value="Descricao"/>
                        </f:facet>                                                
                        <h:outputText value="#{item.idTitulo.descricao}"/>
                    </h:column>
                    <h:column>
                        <f:facet name="header">
                            <h:outputText value="Valor"/>
                        </f:facet>                        
                        R$                         
                        <h:outputText value="#{item.valor}" >
                            <f:convertNumber pattern="###,##0.00"/>
                        </h:outputText>
                    </h:column>
                </h:dataTable>Segue abaixo os respectivos EntityBeans:
public class Titulo implements Serializable {
    
    @Id
    @Column(name = "id", nullable = false)
    private Integer id;
    
    @Column(name = "descricao", nullable = false)
    private String descricao;
    
    @Column(name = "isMensal", nullable = false)
    private boolean isMensal;
    
    @JoinColumn(name = "idCredor", referencedColumnName = "id")
    @ManyToOne
    private Credor idCredor;
    
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idTitulo")
    private Collection<Agendamento> agendamentoCollection;
public class Credor implements Serializable {
    
    @Id
    @Column(name = "id", nullable = false)
    private Integer id;
    
    @Column(name = "nome", nullable = false)
    private String nome;
    
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idCredor")
    private Collection<Titulo> tituloCollection;public class Agendamento implements Serializable {
    
    @Id
    @Column(name = "id", nullable = false)
    private Integer id;
    
    @Column(name = "numero", nullable = false)
    private int numero;
    
    @Column(name = "valor", nullable = false)
    private double valor;
    
    @Column(name = "vencimento", nullable = false)
    @Temporal(TemporalType.TIMESTAMP)
    private Date vencimento;
    
    @Column(name = "status", nullable = false)
    private boolean status;
    
    @JoinColumn(name = "idTitulo", referencedColumnName = "id")
    @ManyToOne
    private Titulo idTitulo;
    
    @JoinColumn(name = "idConta", referencedColumnName = "id")
    @ManyToOne
    private Conta idConta;
    
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idAgendamento")
    private Collection<Lancamento> lancamentoCollection;O problema é na query, quer dizer nao que a query esteja errada, mais como eu consigo recuperar o resuldado da query… ou como eu crio o objecto para recuperar na JSP ?
            String query = "SELECT a.idTitulo.id, c.nome, t.descricao, avg(a.valor) FROM Agendamento a, Titulo t, Credor c where a.idTitulo.isMensal = 1 and a.idTitulo.id = t.id and t.idCredor = c.id GROUP BY a.idTitulo.id, c.nome, t.descricao";
            Query q = em.createQuery(query);como eu nao achei uma forma correcta de fazer isso eu fiz a criacao dos objectos na mao msmo.
Existe alguma forma correcta  ???
Abaixo segue a forma que eu encontrei para popular o resultado da query na pagina (pagina acima)
    public DataModel getLancamentosProvisionado() {
        EntityManager em = getEntityManager();
        try{
            String query = "SELECT a.idTitulo.id, c.nome, t.descricao, avg(a.valor) FROM Agendamento a, Titulo t, Credor c where a.idTitulo.isMensal = 1 and a.idTitulo.id = t.id and t.idCredor = c.id GROUP BY a.idTitulo.id, c.nome, t.descricao";
            Query q = em.createQuery(query);
            List list = q.getResultList();
            List result = new ArrayList();
            for (int i = 0; i < list.size(); i++) {
                Object[] obj = (Object[]) list.get(i);
                Agendamento a = new Agendamento();
                Titulo t = new Titulo();
                Credor c = new Credor();
                t.setId(Integer.parseInt(obj[0].toString()));
                c.setNome(obj[1].toString());
                t.setDescricao(obj[2].toString());
                a.setValor(Double.parseDouble(obj[3].toString()));
                a.setIdTitulo(t);
                t.setIdCredor(c);
                result.add(a);
            }
            model = new ListDataModel(result);
        } finally {
            em.close();
        }
        return model;
    }