Error returning object after query

0

Good night everyone.

Objective: The main goal is to get the user ID and the code of the simulation he answered, and display this on another screen after he responds to this simulation, however, I have exception when trying to perform a query through of my Dao and I do not know how to solve it.

Exception:

Caused by: java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to com.sisEnade.tcc.modelo.Resposta
    at com.sisEnade.tcc.dao.ResultadoSimuladoDAO.resultadoRespostasSimulado(ResultadoSimuladoDAO.java:22)
    at com.sisEnade.tcc.controller.ResultadoSimuladoBean.init(ResultadoSimuladoBean.java:37)



GRAVE: Servlet.service() for servlet [Faces Servlet] in context with path [/sisEnade] threw exception [WELD-000049: Unable to invoke public void com.sisEnade.tcc.controller.ResultadoSimuladoBean.init() on com.sisEnade.tcc.controller.ResultadoSimuladoBean@74e35f8d] with root cause
    ... 91 more

DAO:

@Inject
    private EntityManager manager;


    // Métodos de buscas para resultado do aluno e futuramente relatórios..

    public Resposta resultadoRespostasSimulado(Long codigoUsuario, Long codigoSimulado) {
        Resposta resposta =  (Resposta) manager.createQuery
                ("select u.nome, SUM(r.respostasAcertadas) as Respostas_Corretas from Resposta r "
                 + "JOIN r.usuario u where r.usuario.codigo = ?1 AND r.simulado.codigo = ?2")
                .setParameter(1, codigoUsuario)
                .setParameter(2, codigoSimulado)
                .getSingleResult();

        return resposta;
    }

The bean that is involved with this DAO is as follows:

@Inject
    private ResultadoSimuladoDAO resultadoSimuladoDAO;

    private Resposta resultado;

    @PostConstruct
    public void init() {
        FacesContext fUsuario = FacesContext.getCurrentInstance();
        HttpSession sessionUsuario = (HttpSession) fUsuario.getExternalContext().getSession(false);
        Long codigoUsuario = (Long) sessionUsuario.getAttribute("identificaUsuario");

        FacesContext fSimulado = FacesContext.getCurrentInstance();
        HttpSession sessionSimulado = (HttpSession) fSimulado.getExternalContext().getSession(false);
        Long codigoSimulado = (Long) sessionSimulado.getAttribute("identificaSimulado");

        resultado = this.resultadoSimuladoDAO.resultadoRespostasSimulado(
                codigoUsuario, codigoSimulado);

    }

    public Resposta getResultado() {
        return resultado;
    }
    
asked by anonymous 07.11.2015 / 02:38

0 answers