Hibernate ObjectNotFoundException Com Dao Genérico

5 respostas
W

Pessoal, Ola.

Sou novato em Java, preciso realizar o tratamento de erro para registros não localizados via hibernate.

Estou utilizando um dao generico, quando executo o load(id) recebo ObjectNotFoundException devido ao registro não existir no banco de dados.

alguem pode me ajudar.

Wlsilva

@SuppressWarnings(unchecked)

public T load (String id){

return (T) session.load(persistentClass, id);

}

5 Respostas

Felagund
try{
   obj = load("01");
   //Carregou o objeto
   //Fazer algo com o objeto carregado
}catch(ObjectNotFoundException ex){
   //Fazer alguma coisa com o registronão encontrado
}

procure mais sobre try e catch

[]'s

Jair_Rillo_Junior

Qual a dúvida ai? Fazer o tratamento da exception? Se for isso, aconselho dar uma lida em Exceptions, try, catch, throws e etc…

wamarra

a classe está mapeada corretamente no seu cfg?

W

grato pela atenção, mas é o seguinte:

o codigo esta assim:

@SuppressWarnings(“unchecked”)

public T load (String id){

<a href="//logger.info">//logger.info</a>(“lendo” + persistentClass + "com id " + id );

try{

return (T) session.load(persistentClass, id);

}catch(ObjectNotFoundException ex)

{

System.out.println(“Erro Load”);

return (T) persistentClass ;

}

}

porem não esta passando pela rotina de tratamento erro.

O trecho do exception:
type Exception report

message

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

exception

javax.servlet.ServletException: javax.servlet.ServletException: /FRM_BANCO.jsp(22,3) ‘#{bancoHandler.banco.bco_codbanco}’ Error reading ‘bco_codbanco’ on type modelo.Banco$$EnhancerByCGLIB$$bc27e788
util.HibernateSessionFilter.doFilter(HibernateSessionFilter.java:35)

root cause

javax.servlet.ServletException: /FRM_BANCO.jsp(22,3) ‘#{bancoHandler.banco.bco_codbanco} Error reading bco_codbanco on type modelo.Banco$$EnhancerByCGLIB$$bc27e788

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

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

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

util.HibernateSessionFilter.doFilter(HibernateSessionFilter.java:29)

root cause

org.apache.jasper.el.JspELException: /FRM_BANCO.jsp(22,3) ‘#{bancoHandler.banco.bco_codbanco} Error reading bco_codbanco on type modelo.Banco$$EnhancerByCGLIB$$bc27e788

org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:107)

javax.faces.component.UIOutput.getValue(UIOutput.java:173)

com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getValue(HtmlBasicInputRenderer.java:189)

com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getCurrentValue(HtmlBasicRenderer.java:320)

com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(HtmlBasicRenderer.java:200)

javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:833)

org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:286)

org.ajax4jsf.renderkit.RendererBase.renderChildren(RendererBase.java:262)

org.richfaces.renderkit.TabRendererBase.encodeChildren(TabRendererBase.java:113)

javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:809)

org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:282)

org.ajax4jsf.renderkit.RendererBase.renderChildren(RendererBase.java:262)

org.richfaces.renderkit.html.TabPanelRenderer.doEncodeChildren(TabPanelRenderer.java:266)

org.richfaces.renderkit.html.TabPanelRenderer.doEncodeChildren(TabPanelRenderer.java:261)

org.ajax4jsf.renderkit.RendererBase.encodeChildren(RendererBase.java:121)

javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:809)

javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)

javax.faces.render.Renderer.encodeChildren(Renderer.java:137)

javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:809)

javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)

javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)

com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:244)

com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:175)

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

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

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

com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)

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

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

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

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

util.HibernateSessionFilter.doFilter(HibernateSessionFilter.java:29)

root cause

java.lang.NullPointerException

org.hibernate.proxy.AbstractLazyInitializer.checkTargetState(AbstractLazyInitializer.java:79)

org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:72)

org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:111)

org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:150)

modelo.Banco$$EnhancerByCGLIB$$bc27e788.getBco_codbanco()

sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

java.lang.reflect.Method.invoke(Method.java:585)

javax.el.BeanELResolver.getValue(BeanELResolver.java:62)

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

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

org.apache.el.parser.AstValue.getValue(AstValue.java:118)

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

org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:101)

javax.faces.component.UIOutput.getValue(UIOutput.java:173)

com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getValue(HtmlBasicInputRenderer.java:189)

com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getCurrentValue(HtmlBasicRenderer.java:320)

com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(HtmlBasicRenderer.java:200)

javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:833)

org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:286)

org.ajax4jsf.renderkit.RendererBase.renderChildren(RendererBase.java:262)

org.richfaces.renderkit.TabRendererBase.encodeChildren(TabRendererBase.java:113)

javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:809)

org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:282)

org.ajax4jsf.renderkit.RendererBase.renderChildren(RendererBase.java:262)

org.richfaces.renderkit.html.TabPanelRenderer.doEncodeChildren(TabPanelRenderer.java:266)

org.richfaces.renderkit.html.TabPanelRenderer.doEncodeChildren(TabPanelRenderer.java:261)

org.ajax4jsf.renderkit.RendererBase.encodeChildren(RendererBase.java:121)

javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:809)

javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)

javax.faces.render.Renderer.encodeChildren(Renderer.java:137)

javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:809)

javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)

javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)

com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:244)

com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:175)

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

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

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

com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)

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

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

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

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

util.HibernateSessionFilter.doFilter(HibernateSessionFilter.java:29)

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

grato

W

Desculpe, capturei a mensagem errada o erro apresentado é esse:

HTTP Status 500 -


type Exception report

message

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

exception

javax.servlet.ServletException: javax.servlet.ServletException: /FRM_BANCO.jsp(22,3) ‘#{bancoHandler.banco.bco_codbanco}’ Error reading ‘bco_codbanco’ on type modelo.Banco$$EnhancerByCGLIB$$8ade0d00
util.HibernateSessionFilter.doFilter(HibernateSessionFilter.java:35)

root cause

javax.servlet.ServletException: /FRM_BANCO.jsp(22,3) ‘#{bancoHandler.banco.bco_codbanco} Error reading bco_codbanco on type modelo.Banco$$EnhancerByCGLIB$$8ade0d00

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

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

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

util.HibernateSessionFilter.doFilter(HibernateSessionFilter.java:29)

root cause

org.apache.jasper.el.JspELException: /FRM_BANCO.jsp(22,3) ‘#{bancoHandler.banco.bco_codbanco} Error reading bco_codbanco on type modelo.Banco$$EnhancerByCGLIB$$8ade0d00

org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:107)

javax.faces.component.UIOutput.getValue(UIOutput.java:173)

com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getValue(HtmlBasicInputRenderer.java:189)

com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getCurrentValue(HtmlBasicRenderer.java:320)

com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(HtmlBasicRenderer.java:200)

javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:833)

org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:286)

org.ajax4jsf.renderkit.RendererBase.renderChildren(RendererBase.java:262)

org.richfaces.renderkit.TabRendererBase.encodeChildren(TabRendererBase.java:113)

javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:809)

org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:282)

org.ajax4jsf.renderkit.RendererBase.renderChildren(RendererBase.java:262)

org.richfaces.renderkit.html.TabPanelRenderer.doEncodeChildren(TabPanelRenderer.java:266)

org.richfaces.renderkit.html.TabPanelRenderer.doEncodeChildren(TabPanelRenderer.java:261)

org.ajax4jsf.renderkit.RendererBase.encodeChildren(RendererBase.java:121)

javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:809)

javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)

javax.faces.render.Renderer.encodeChildren(Renderer.java:137)

javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:809)

javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)

javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)

com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:244)

com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:175)

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

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

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

com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)

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

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

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

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

util.HibernateSessionFilter.doFilter(HibernateSessionFilter.java:29)

root cause

org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [modelo.Banco#200]

org.hibernate.impl.SessionFactoryImpl$1.handleEntityNotFound(SessionFactoryImpl.java:377)

org.hibernate.proxy.AbstractLazyInitializer.checkTargetState(AbstractLazyInitializer.java:79)

org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:68)

org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:111)

org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:150)

modelo.Banco$$EnhancerByCGLIB$$8ade0d00.getBco_codbanco()

sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

java.lang.reflect.Method.invoke(Method.java:585)

javax.el.BeanELResolver.getValue(BeanELResolver.java:62)

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

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

org.apache.el.parser.AstValue.getValue(AstValue.java:118)

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

org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:101)

javax.faces.component.UIOutput.getValue(UIOutput.java:173)

com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getValue(HtmlBasicInputRenderer.java:189)

com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getCurrentValue(HtmlBasicRenderer.java:320)

com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(HtmlBasicRenderer.java:200)

javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:833)

org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:286)

org.ajax4jsf.renderkit.RendererBase.renderChildren(RendererBase.java:262)

org.richfaces.renderkit.TabRendererBase.encodeChildren(TabRendererBase.java:113)

javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:809)

org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:282)

org.ajax4jsf.renderkit.RendererBase.renderChildren(RendererBase.java:262)

org.richfaces.renderkit.html.TabPanelRenderer.doEncodeChildren(TabPanelRenderer.java:266)

org.richfaces.renderkit.html.TabPanelRenderer.doEncodeChildren(TabPanelRenderer.java:261)

org.ajax4jsf.renderkit.RendererBase.encodeChildren(RendererBase.java:121)

javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:809)

javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)

javax.faces.render.Renderer.encodeChildren(Renderer.java:137)

javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:809)

javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)

javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)

com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:244)

com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:175)

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

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

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

com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)

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

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

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

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

util.HibernateSessionFilter.doFilter(HibernateSessionFilter.java:29)

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


Apache Tomcat/6.0.20

Criado 19 de agosto de 2009
Ultima resposta 20 de ago. de 2009
Respostas 5
Participantes 4