[RESOLVIDO] Dúvida com o JOIN na NamedQuery

11 respostas
camila.java

Ola,

Estou com dúvida de como fazer um JOIN na NamedQuery, fiz exatamente como alguns exemplos. porém não funcionou…
Podem dar uma olhada pra mim por favor

Estou usando o EclipseLink e não o Hibernate.

Obrigada

11 Respostas

R

A sintaxe parece ok, qual o erro que você está recebendo em tempo de execução? Não se se vai funcionar, mas acho que você pode tentar usar “LEFT JOIN FETCH” em vez de apenas “JOIN”.

camila.java

O erro acontece na compilação. Tentei o LEFT JOIN FETCH não funcionou.

Mais alguma ideia??

R

Por favor poste o erro de compilação para analisarmos.

camila.java

11/03/2011 15:15:28 org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException

este é o erro que da, acontece no momento que ele tenta executar uma NamedQuery, acho que analisa todas as
NamedQuery se alguma estiver com erro, não compila. Comentei a NamedQuery com o JOIN e funcionou certinho.

R

Por favor inclua o Stack Trace completo emitido pelo Tomcat, você postou apenas a primeira linha.

camila.java

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: javax.servlet.ServletException

org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:491)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:401)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)

javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

root cause

javax.servlet.ServletException

javax.faces.webapp.FacesServlet.service(FacesServlet.java:277)

org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)

org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)

org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)

org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)

org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:706)

org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:677)

org.apache.jsp.index_jsp._jspService(index_jsp.java:56)

org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)

javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)

javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

root cause

java.lang.NullPointerException

br.ufscar.puictweb.apresentacao.AlunoMB.montarComboCursos(AlunoMB.java:78)

br.ufscar.puictweb.apresentacao.AlunoMB.(AlunoMB.java:58)

sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)

sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)

java.lang.reflect.Constructor.newInstance(Unknown Source)

java.lang.Class.newInstance0(Unknown Source)

java.lang.Class.newInstance(Unknown Source)

com.sun.faces.mgbean.BeanBuilder.newBeanInstance(BeanBuilder.java:186)

com.sun.faces.mgbean.BeanBuilder.build(BeanBuilder.java:106)

com.sun.faces.mgbean.BeanManager.createAndPush(BeanManager.java:368)

com.sun.faces.mgbean.BeanManager.create(BeanManager.java:230)

com.sun.faces.el.ManagedBeanELResolver.getValue(ManagedBeanELResolver.java:86)

javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54)

com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:72)

org.apache.el.parser.AstIdentifier.getValue(AstIdentifier.java:68)

org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)

com.sun.faces.application.ValueBindingValueExpressionAdapter.getValue(ValueBindingValueExpressionAdapter.java:113)

org.ajax4jsf.taglib.html.facelets.KeepAliveHandler.apply(KeepAliveHandler.java:76)

com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47)

com.sun.facelets.tag.jsf.ComponentHandler.applyNextHandler(ComponentHandler.java:314)

com.sun.facelets.tag.jsf.ComponentHandler.apply(ComponentHandler.java:169)

com.sun.facelets.tag.ui.DefineHandler.applyDefinition(DefineHandler.java:64)

com.sun.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:131)

com.sun.facelets.impl.DefaultFaceletContext$TemplateManager.apply(DefaultFaceletContext.java:310)

com.sun.facelets.impl.DefaultFaceletContext.includeDefinition(DefaultFaceletContext.java:280)

com.sun.facelets.tag.ui.InsertHandler.apply(InsertHandler.java:68)

com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47)

com.sun.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:49)

com.sun.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:25)

com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:248)

com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:294)

com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:273)

com.sun.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:144)

com.sun.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:113)

com.sun.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:49)

com.sun.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:25)

com.sun.facelets.impl.DefaultFacelet.apply(DefaultFacelet.java:95)

com.sun.facelets.FaceletViewHandler.buildView(FaceletViewHandler.java:524)

com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:567)

org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100)

org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176)

com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110)

com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)

com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)

javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)

org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)

org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)

org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)

org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)

org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:706)

org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:677)

org.apache.jsp.index_jsp._jspService(index_jsp.java:56)

org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)

javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)

javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.29 logs.

R

Você parece estar tentando fazer acesso a um objeto nulo na linha 78 da classe br.ufscar.puictweb.apresentacao.AlunoMB, método montarComboCursos(). Tem certeza de que todos os objetos com que você está trabalhando são válidos?

camila.java

Estão sim, pesquisei aki e o EclipseLink valida primeiro se as namedquerys estão corretas, tanto é que se comento a namedquery com o Join o projeto roda perfeitamente.

R

Confesso que não consigo enxergar outras saídas para o seu problema. O único palpite que ainda posso sugerir para alguma investigação é que o seu JOIN está puxando o atributo “obj.Resultado”, onde o “R” está em maiúsculo; poderia tentar usar “obj.resultado”, com o “r” minúsculo?

camila.java

advinha, acertou em cheio!

uma coisa tão boba e perdi um tempão.

Brigadão

R

Show :slight_smile: Não se esqueça de colocar “[RESOLVIDO]” no título do tópico.

Criado 11 de março de 2011
Ultima resposta 11 de mar. de 2011
Respostas 11
Participantes 2