Falha em Cast - Hibernaty

2 respostas
guihgf_10

Boa Tarde Galera

Venha compartilhar com vocês um problema e se tudo der certo a solução:

Tenho o seguinte método:

public List<Object[]> ListaConteudo(String curso)
    {
        Session s=HibernateUtil.getSessionFactory().getCurrentSession();
        s.beginTransaction();
        Query q=s.createQuery("select co.conteId, co.conteNome from Conteudo co inner join co.curso c where c.cursoCod=:curso").setParameter("curso", curso); 
        return q.list();
    }

e na Servlet a sua chamada:

List<Object[]> lista= cd.ListaConteudo(curso); // Pau aqui

            for(Object [] o: lista)
            {
              os.writeUTF(String.valueOf(o[0]));
              os.writeUTF(String.valueOf(o[1]));

              System.out.println(String.valueOf(o[0])+ String.valueOf(o[1]));

            }
            os.close();
ao chamar o método é emitido o seguinte erro:

GRAVE: Servlet.service() for servlet Conteudo threw exception
java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer

at org.hibernate.type.IntegerType.set(IntegerType.java:41)
at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:136)
at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:116)
at org.hibernate.param.NamedParameterSpecification.bind(NamedParameterSpecification.java:38)
at org.hibernate.loader.hql.QueryLoader.bindParameterValues(QueryLoader.java:491)
at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1563)
at org.hibernate.loader.Loader.doQuery(Loader.java:673)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
at org.hibernate.loader.Loader.doList(Loader.java:2220)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
at org.hibernate.loader.Loader.list(Loader.java:2099)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:378)
at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:338)
at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
at model.ConteudoData.ListaConteudo(ConteudoData.java:36)
at controle.Conteudo.doPost(Conteudo.java:78)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:859)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1555)
at java.lang.Thread.run(Thread.java:662)

Tenho um outro que faz a mesma coisa e está certo, porém o erro é no retorno do método, onde estou pecando que não vi ?

2 Respostas

visola

Suponho que a propriedade codCurso dentro de Conteudo seja um inteiro. No seu método você está passando uma String.

guihgf_10

putz cara, valeu, ignorei totalmente o parametro, nem reparei

valeu!

Criado 26 de fevereiro de 2011
Ultima resposta 26 de fev. de 2011
Respostas 2
Participantes 2