Problema com Select = java.lang.NumberFormatException: For input string: "variacao"
21 respostas
D
Diego_Adriano
Bom galera, estou tendo esse erro no momento de exibir a consulta na view, mas o estranho é que “VARIAÇÃO” é um int e em momento algum eu transformo ele em String.
Fev 16, 2012 6:09:42 PM com.sun.faces.application.view.FaceletViewHandlingStrategy handleRenderException
Grave: Error Rendering View[/Pages/Relatorios/imprimetreino.xhtml]
java.lang.NumberFormatException: For input string: "variacao"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:492)
at java.lang.Integer.parseInt(Integer.java:527)
at javax.el.ListELResolver.coerce(ListELResolver.java:173)
at javax.el.ListELResolver.getValue(ListELResolver.java:52)
at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)
at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)
at org.apache.el.parser.AstValue.getValue(AstValue.java:169)
at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:189)
at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109)
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:194)
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:182)
at javax.faces.component.UIOutput.getValue(UIOutput.java:169)
at com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getValue(HtmlBasicInputRenderer.java:205)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getCurrentValue(HtmlBasicRenderer.java:355)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(HtmlBasicRenderer.java:164)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:875)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:312)
at com.sun.faces.renderkit.html_basic.GridRenderer.renderRow(GridRenderer.java:185)
at com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren(GridRenderer.java:129)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1756)
at javax.faces.render.Renderer.encodeChildren(Renderer.java:168)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845)
at org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:58)
at org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:46)
at org.primefaces.component.panel.PanelRenderer.encodeContent(PanelRenderer.java:185)
at org.primefaces.component.panel.PanelRenderer.encodeMarkup(PanelRenderer.java:108)
at org.primefaces.component.panel.PanelRenderer.encodeEnd(PanelRenderer.java:55)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:875)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1763)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1759)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1759)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:401)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:594)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at br.com.treino.filter.ControleFiltro.doFilter(ControleFiltro.java:33)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
dadostreino eh um list e nao um objeto de dados exercicio, vc precisa pegar o objeto antes de usar o seu atributo.
entendeu? nao consegui explicar melhor
Isso realmente é dificil de explicar.
Ao fazer #{imprimeBean.treinoGeral.dadostreino.variacao}, sendo que dadostreino é uma lista, qual dos objetos da lista seria utilizado?
D
Diego_Adriano
Opa … foi muito bem claro … eu já havia pensado nisso … apenas n tinha certeza …
Mas vlw … vou fazer as alterações …
D
Diego_Adriano
Então Jakefrog … foi erro meu mesmo, não preciso exibir esse dado nesse lugar, o list eu espero em um datalist, pensei em exibir fora dele … mas vou fazer lá mesmo …
D
Diego_Adriano
Agora estou com esse problema no Select:
Caused by: java.lang.IllegalArgumentException: org.hibernate.hql.ast.QuerySyntaxException: treinogeral is not mapped [SELECT t, de FROM treinogeral t, dadosexercicio de WHERE t.id = de.treinogeral AND t.id =:id AND de.imprime =:imprime]
Meu Select
Query query = this.entityManager.createQuery("SELECT t, de FROM treinogeral t, dadosexercicio de" +
" WHERE t.id = de.treinogeral" +
" AND t.id =:id" +
" AND de.imprime =:imprime");
query.setParameter("id", id);
query.setParameter("imprime", true);
D
Diego_Adriano
Galera, a questão do Select resolvi, era erro no nome das Tabelas :
at br.com.treino.repository.ImprimeRepository.treino(ImprimeRepository.java:46)
at br.com.treino.bean.ImprimeBean.consultatreino(ImprimeBean.java:48)
at br.com.treino.bean.ImprimeBean.setTreinoSelecionado(ImprimeBean.java:75)
@SuppressWarnings("unchecked")publicTreinoGeraltreino(Longid){System.out.println("RT");Queryquery=this.entityManager.createQuery("SELECT tg, de FROM TreinoGeral tg, DadosExercicio de"+" WHERE tg.id = de.treinogeral"+" AND tg.id =:id"+" AND de.imprime =:imprime");query.setParameter("id",id);query.setParameter("imprime",true);ArrayList<DadosExercicio>exercicios=newArrayList<DadosExercicio>();exercicios=(ArrayList<DadosExercicio>)query.getResultList();TreinoGeralgeral=newTreinoGeral();geral=(TreinoGeral)query.getSingleResult();geral.setDadostreino(exercicios);TreinoGeraltreinoGeral=newTreinoGeral(geral.getSessoestotal(),geral.getSessoesrealizadas(),geral.getSessoesrestantes(),geral.getCliente(),geral.getDadostreino());returntreinoGeral;}
Como eu disse anteriormente, não sei se é a forma correta de fazer o retorno..
M
mauricioadl
faz um teste assim.
pega o Object que o singleResult esta trazendo e da um getClass pra ver que tipo de classe ele traz.
Hibernate:/* SELECT tg, de FROM TreinoGeral tg, DadosExercicio de WHERE tg.id = de.treinogeral AND tg.id =:id AND de.imprime =:imprime */selecttreinogera0_.idasid8_0_,dadosexerc1_.idasid9_1_,treinogera0_.cliente_idascliente6_8_0_,treinogera0_.sessoesrealizadasassessoesr2_8_0_,treinogera0_.sessoesrestantesassessoesr3_8_0_,treinogera0_.sessoestotalassessoest4_8_0_,treinogera0_.situacaoassituacao8_0_,dadosexerc1_.descansoasdescanso9_1_,dadosexerc1_.exercicioasexercicio9_1_,dadosexerc1_.imprimeasimprime9_1_,dadosexerc1_.pesoaspeso9_1_,dadosexerc1_.repeticaoasrepeticao9_1_,dadosexerc1_.serieasserie9_1_,dadosexerc1_.treinogeralastreinoge9_9_1_,dadosexerc1_.variacaoasvariacao9_1_fromTreinoGeraltreinogera0_crossjoinDadosExerciciodadosexerc1_wheretreinogera0_.id=dadosexerc1_.treinogeralandtreinogera0_.id=?anddadosexerc1_.imprime=?Fev17,201212:25:56PMcom.sun.faces.lifecycle.InvokeApplicationPhaseexecuteAdvertência:/Pages/Relatorios/imprimetreino.xhtml@101,30target="#{imprimeBean.treinoSelecionado}":Errorwriting'treinoSelecionado'ontypebr.com.treino.bean.ImprimeBeanjavax.el.ELException:/Pages/Relatorios/imprimetreino.xhtml@101,30target="#{imprimeBean.treinoSelecionado}":Errorwriting'treinoSelecionado'ontypebr.com.treino.bean.ImprimeBeanatcom.sun.faces.facelets.el.TagValueExpression.setValue(TagValueExpression.java:139)atcom.sun.faces.facelets.tag.jsf.core.SetPropertyActionListenerHandler$SetPropertyListener.processAction(SetPropertyActionListenerHandler.java:206)atjavax.faces.event.ActionEvent.processListener(ActionEvent.java:88)atjavax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:769)atjavax.faces.component.UICommand.broadcast(UICommand.java:300)atjavax.faces.component.UIData.broadcast(UIData.java:1093)atjavax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)atjavax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)atcom.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)atcom.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)atcom.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)atjavax.faces.webapp.FacesServlet.service(FacesServlet.java:593)atorg.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)atorg.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)atbr.com.treino.filter.ControleFiltro.doFilter(ControleFiltro.java:33)atorg.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)atorg.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)atorg.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)atorg.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)atorg.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)atorg.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)atorg.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)atorg.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)atorg.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)atorg.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)atorg.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)atorg.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)atorg.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)atjava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)atjava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)atjava.lang.Thread.run(Thread.java:722)Causedby:java.lang.ClassCastException:[Ljava.lang.Object;cannotbecasttobr.com.treino.model.DadosExercicioatbr.com.treino.repository.ImprimeRepository.treino(ImprimeRepository.java:45)atbr.com.treino.bean.ImprimeBean.consultatreino(ImprimeBean.java:48)atbr.com.treino.bean.ImprimeBean.setTreinoSelecionado(ImprimeBean.java:75)atsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)atjava.lang.reflect.Method.invoke(Method.java:601)atjavax.el.BeanELResolver.setValue(BeanELResolver.java:142)atcom.sun.faces.el.DemuxCompositeELResolver._setValue(DemuxCompositeELResolver.java:255)atcom.sun.faces.el.DemuxCompositeELResolver.setValue(DemuxCompositeELResolver.java:281)atorg.apache.el.parser.AstValue.setValue(AstValue.java:204)atorg.apache.el.ValueExpressionImpl.setValue(ValueExpressionImpl.java:257)atcom.sun.faces.facelets.el.TagValueExpression.setValue(TagValueExpression.java:131)...30more
M
mauricioadl
assim o erro vai continuar prq vc continua tentando dar um cast nele, troca isso:
Cara seu select ta retornando um array de Object contendo TreinoGeral e DadosExercicio como pode ser visto na query:
"SELECT tg, de FROM TreinoGeral tg, DadosExercicio de"
Eu tentaria algo do tipo:
publicTreinoGeraltreino(Longid){Queryquery=this.entityManager.createQuery("from TreinoGeral tg left join tg.dadostreino as dt with dt.imprime = :imprime WHERE tg.id =:id"); query.setParameter("id",id); query.setParameter("imprime",true); return(TreinoGeral)query.getSingleResult();
}
Ele continua retornando o array de object? Então eu faria assim, iterava a lista query.getResultList() que é um array de object onde a primeira posição contém o TreinoGeral e a segunda o DadoExercicio. Tambem teria um Map<Integer,TreinoGeral> que mapeia uma instancia de TreinoGeral de acordo com o codigo dele, na iteração eu verificaria se o mapa ja possui o TreinoGeral correspondente, caso sim pego a instancia do mapa e adiciona o DadoExercicio a sua lista de dadostreino, caso não eu crio uma nova instancia de treino e adiciono ao mapa, conseguiu pegar a ideia?
D
Diego_Adriano
Bem, podemos dizer que o problema do Select resolvemos, mas agora estou com o problema de como abastecer minha view com os Dados retornados.
@SuppressWarnings("unchecked")publicList<TreinoGeral>treino(Longid){System.out.println("RT");Queryquery=this.entityManager.createQuery("from TreinoGeral tg left join tg.dadostreino as dt"+" with dt.imprime = :imprime"+" WHERE tg.id =:id");query.setParameter("id",id);query.setParameter("imprime",true);returnquery.getResultList();}
E agora, como farei para pegar os Dados retornados??
Preciso abastecer um OBJ do tipo TreinoGeral e um ArrayList de DadosExercicio!
F
fbl.lucas
Porque não utiliza assim:
return(TreinoGeral)query.getSingleResult();
Ele ja retornaria o TreinoGeral com a lista de DadosExercicio, eu só não sei te informar se essa lista trás apenas os DadosExercicio com imprimir=true pois nunca utilizei esse “with” do HQL, da uma debugada ai para confirmar
D
Diego_Adriano
Galera, não consigo arrumar essa parada nem com reza braba … rsrs