Query não é executada
Essa vquery parece não está sendo executada. Debuguei e não consigo chegar nela. Chega na chamada ao FactorySingleton ele não anda mais. Antes o debug reclamou de faltar o hibernate-entitymanager.jar. Adicionei e continuou a reclamar. Restartei o eclipse e agora ele para nesse método e não anda mais.
Ele para aqui
Parece não executar essa query, pois a lista vem vazia. Mas pelo log do Container a query é montada, tando que se carrego direta no banco funciona, logo o erro está na chamada.
A minha chamada completa do método.
Ele para aqui
private EntityManager em = EntityManagerFactorySingleton.getInstance().createEntityManager();
Parece não executar essa query, pois a lista vem vazia. Mas pelo log do Container a query é montada, tando que se carrego direta no banco funciona, logo o erro está na chamada.
import javax.persistence.EntityManager;
A minha chamada completa do método.
public List<Escola> findAll() { List <Escola> listEscola = null; try { HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false); LoginControle loginControle = (LoginControle) session.getAttribute("LoginControle"); Login login = loginControle.getLogin(); String comando = "select distinct esc from Escola esc ,Matricula mat" + " where mat.idescola = esc.idescola" + " and mat.idpessoa = " + login.getPessoa().getIdPessoa() + " and mat.situacao = 'A' order by esc.nome"; Query query = em.createQuery(comando); listEscola = query.getResultList(); } catch (Exception e) { e.printStackTrace(); }finally{ em.close(); } return listEscola; }
Pjava
Curtidas 0
Respostas
Pjava
10/05/2011
Esse é o logo do glassfish
GRAVE: java.lang.NullPointerException
at br.com.mosaicodigital.modelo.ListaEscola.findAll(ListaEscola.java:43)
at br.com.mosaicodigital.controle.MostraEscolaAtiva.getEscolas(MostraEscolaAtiva.java:37)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:302)
at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)
at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)
at com.sun.el.parser.AstValue.getValue(AstValue.java:116)
at com.sun.el.parser.AstValue.getValue(AstValue.java:163)
at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:219)
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.UIData.getValue(UIData.java:731)
at javax.faces.component.UIData.getDataModel(UIData.java:1798)
at javax.faces.component.UIData.setRowIndexWithoutRowStatePreserved(UIData.java:484)
at javax.faces.component.UIData.setRowIndex(UIData.java:473)
at javax.faces.component.UIData.visitColumnsAndColumnFacets(UIData.java:2078)
at javax.faces.component.UIData.visitTree(UIData.java:1431)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1600)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1600)
at com.sun.faces.application.view.StateManagementStrategyImpl.saveView(StateManagementStrategyImpl.java:149)
at com.sun.faces.application.StateManagerImpl.saveView(StateManagerImpl.java:133)
at com.sun.faces.application.view.WriteBehindStateWriter.flushToWriter(WriteBehindStateWriter.java:225)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:418)
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:410)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1534)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:98)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:91)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:162)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:326)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:227)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:170)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:822)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:719)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1013)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
at java.lang.Thread.run(Thread.java:662)
GRAVE: java.lang.NullPointerException
at br.com.mosaicodigital.modelo.ListaEscola.findAll(ListaEscola.java:43)
at br.com.mosaicodigital.controle.MostraEscolaAtiva.getEscolas(MostraEscolaAtiva.java:37)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:302)
at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)
at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)
at com.sun.el.parser.AstValue.getValue(AstValue.java:116)
at com.sun.el.parser.AstValue.getValue(AstValue.java:163)
at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:219)
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.UIData.getValue(UIData.java:731)
at javax.faces.component.UIData.getDataModel(UIData.java:1798)
at javax.faces.component.UIData.setRowIndexWithoutRowStatePreserved(UIData.java:484)
at javax.faces.component.UIData.setRowIndex(UIData.java:473)
at javax.faces.component.UIData.visitColumnsAndColumnFacets(UIData.java:2078)
at javax.faces.component.UIData.visitTree(UIData.java:1431)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1600)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1600)
at com.sun.faces.application.view.StateManagementStrategyImpl.saveView(StateManagementStrategyImpl.java:149)
at com.sun.faces.application.StateManagerImpl.saveView(StateManagerImpl.java:133)
at com.sun.faces.application.view.WriteBehindStateWriter.flushToWriter(WriteBehindStateWriter.java:225)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:418)
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:410)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1534)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:98)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:91)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:162)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:326)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:227)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:170)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:822)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:719)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1013)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
at java.lang.Thread.run(Thread.java:662)
GOSTEI 0
Robson Teixeira
10/05/2011
Olá Pjava
primeiramente teste essa sua consulta direto no banco para ver se retorna algum resultado e se retornar tente assim
String comando = "select distinct esc from Escola esc ,Matricula mat" +
" where mat.idescola = esc.idescola" +
" and mat.idpessoa = :id" +
" and mat.situacao = 'A' order by esc.nome";
Query query = em.createQuery(comando);
query.setParameter("id",login.getPessoa().getIdPessoa());
listEscola = query.getResultList();
eu particularmente nunca fiz consulta JPQL do jeito que você fez mas assim você evita problemas de segurança como o SQL injection.
Lembrando que a query pode está correta mas pode ser que o banco não retorne nada.
qualquer coisa é so chamar.
att
robson
primeiramente teste essa sua consulta direto no banco para ver se retorna algum resultado e se retornar tente assim
String comando = "select distinct esc from Escola esc ,Matricula mat" +
" where mat.idescola = esc.idescola" +
" and mat.idpessoa = :id" +
" and mat.situacao = 'A' order by esc.nome";
Query query = em.createQuery(comando);
query.setParameter("id",login.getPessoa().getIdPessoa());
listEscola = query.getResultList();
eu particularmente nunca fiz consulta JPQL do jeito que você fez mas assim você evita problemas de segurança como o SQL injection.
Lembrando que a query pode está correta mas pode ser que o banco não retorne nada.
qualquer coisa é so chamar.
att
robson
GOSTEI 0
Pjava
10/05/2011
A query retorna, nesse caso 2 linhas(2 escolas). Inclusive a query que no log do GlassFish eu pego, ela também me retorna a mesma coisa. Essa é a query que eu peguei no log do glassfish. Essa query funciona. Ela é a execução da que está em código fonte.
select distinct escola0_.idescola as idescola7_, escola0_.nome as nome7_, escola0_.telefone as telefone7_, escola0_.fax as fax7_, escola0_.email as email7_ from escola escola0_, matricula matricula1_ where matricula1_.idescola=escola0_.idescola and matricula1_.idpessoa=1 and matricula1_.situacao='A' order by escola0_.nome
GOSTEI 0
Davi Costa
10/05/2011
Qual a linha 43 dessa classe?
Desconfio que seja alguma dessas duas;
LoginControle loginControle = (LoginControle) session.getAttribute("LoginControle");
Login login = loginControle.getLogin();
é isso mesmo?
Att Davi
Desconfio que seja alguma dessas duas;
LoginControle loginControle = (LoginControle) session.getAttribute("LoginControle");
Login login = loginControle.getLogin();
é isso mesmo?
Att Davi
GOSTEI 0
Dyego Carmo
10/05/2011
Resolvido ?
Se sim , poderia fechar ?
Valeu !
GOSTEI 0