[RESOLVIDO] Dúvida com o JOIN na NamedQuery

11 respostas
C

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”.

C

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.

C

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.

C

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?

C

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?

C

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