Bem eu estou com um problema e não tenho ideia de como corrigi-lo, estou começando a mexer com o hibernate.
Tenho duas tabelas
Produto e Local
Para cadastrar um produto eu preciso fornecer um local, ateh ai tudo bem ele cadastra o problema eh na hora de fazer o update
Eu carrego os itens na minha tela, mas o atributo local exibe no debug com.sun.jdi.InvocationException occurred invoking method e org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer@5fada2
E na tela exibe isso aqui
HTTP Status 500 - javax.el.ELException: /admin/cadastrobicicleta.xhtml @17,61 value="#{bikeBean.produto.local.id}": Error writing 'id' on type br.com.bikers.model.local.Local_$$_javassist_1
type Exception report
message javax.el.ELException: /admin/cadastrobicicleta.xhtml @17,61 value="#{bikeBean.produto.local.id}": Error writing 'id' on type br.com.bikers.model.local.Local_$$_javassist_1
description The server encountered an internal error (javax.el.ELException: /admin/cadastrobicicleta.xhtml @17,61 value="#{bikeBean.produto.local.id}": Error writing 'id' on type br.com.bikers.model.local.Local_$$_javassist_1) that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: javax.el.ELException: /admin/cadastrobicicleta.xhtml @17,61 value="#{bikeBean.produto.local.id}": Error writing 'id' on type br.com.bikers.model.local.Local_$$_javassist_1
javax.faces.webapp.FacesServlet.service(FacesServlet.java:606)
root cause
javax.faces.component.UpdateModelException: javax.el.ELException: /admin/cadastrobicicleta.xhtml @17,61 value="#{bikeBean.produto.local.id}": Error writing 'id' on type br.com.bikers.model.local.Local_$$_javassist_1
javax.faces.component.UIInput.updateModel(UIInput.java:853)
javax.faces.component.UIInput.processUpdates(UIInput.java:735)
javax.faces.component.UIComponentBase.processUpdates(UIComponentBase.java:1242)
javax.faces.component.UIComponentBase.processUpdates(UIComponentBase.java:1242)
javax.faces.component.UIForm.processUpdates(UIForm.java:281)
javax.faces.component.UIComponentBase.processUpdates(UIComponentBase.java:1242)
javax.faces.component.UIViewRoot.processUpdates(UIViewRoot.java:1231)
com.sun.faces.lifecycle.UpdateModelValuesPhase.execute(UpdateModelValuesPhase.java:78)
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
root cause
javax.el.ELException: /admin/cadastrobicicleta.xhtml @17,61 value="#{bikeBean.produto.local.id}": Error writing 'id' on type br.com.bikers.model.local.Local_$$_javassist_1
com.sun.faces.facelets.el.TagValueExpression.setValue(TagValueExpression.java:139)
javax.faces.component.UIInput.updateModel(UIInput.java:818)
javax.faces.component.UIInput.processUpdates(UIInput.java:735)
javax.faces.component.UIComponentBase.processUpdates(UIComponentBase.java:1242)
javax.faces.component.UIComponentBase.processUpdates(UIComponentBase.java:1242)
javax.faces.component.UIForm.processUpdates(UIForm.java:281)
javax.faces.component.UIComponentBase.processUpdates(UIComponentBase.java:1242)
javax.faces.component.UIViewRoot.processUpdates(UIViewRoot.java:1231)
com.sun.faces.lifecycle.UpdateModelValuesPhase.execute(UpdateModelValuesPhase.java:78)
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
root cause
java.lang.Exception
org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:182)
br.com.bikers.model.local.Local_$$_javassist_1.setId(Local_$$_javassist_1.java)
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:597)
javax.el.BeanELResolver.setValue(BeanELResolver.java:142)
com.sun.faces.el.DemuxCompositeELResolver._setValue(DemuxCompositeELResolver.java:255)
com.sun.faces.el.DemuxCompositeELResolver.setValue(DemuxCompositeELResolver.java:281)
org.apache.el.parser.AstValue.setValue(AstValue.java:204)
org.apache.el.ValueExpressionImpl.setValue(ValueExpressionImpl.java:257)
com.sun.faces.facelets.el.TagValueExpression.setValue(TagValueExpression.java:131)
javax.faces.component.UIInput.updateModel(UIInput.java:818)
javax.faces.component.UIInput.processUpdates(UIInput.java:735)
javax.faces.component.UIComponentBase.processUpdates(UIComponentBase.java:1242)
javax.faces.component.UIComponentBase.processUpdates(UIComponentBase.java:1242)
javax.faces.component.UIForm.processUpdates(UIForm.java:281)
javax.faces.component.UIComponentBase.processUpdates(UIComponentBase.java:1242)
javax.faces.component.UIViewRoot.processUpdates(UIViewRoot.java:1231)
com.sun.faces.lifecycle.UpdateModelValuesPhase.execute(UpdateModelValuesPhase.java:78)
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
Local.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 25/08/2012 21:12:09 by Hibernate Tools 4.0.0 -->
<hibernate-mapping>
<class name="br.com.bikers.model.local.Local" table="local"
schema="public">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="increment" />
</id>
<property name="local" type="string">
<column name="local" />
</property>
<property name="cep" type="string">
<column name="cep" />
</property>
<set name="produtos" table="produtos" inverse="true" lazy="true"
fetch="select">
<key>
<column name="id_local" not-null="true" />
</key>
<one-to-many class="br.com.bikers.model.produto.Produtos" />
</set>
</class>
</hibernate-mapping>
Produto.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 01/08/2012 22:45:05 by Hibernate Tools 4.0.0 -->
<hibernate-mapping>
<class name="br.com.bikers.model.produto.Produtos" table="produtos" schema="public">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="increment"/>
</id>
<property name="prodNome" type="string">
<column name="prod_nome" />
</property>
<property name="imagem" type="java.lang.Long">
<column name="imagem" />
</property>
<many-to-one name="local" class="br.com.bikers.model.local.Local" fetch="select">
<column name="id_local" not-null="true" />
</many-to-one>
<set name="itens" table="itens_pedido" fetch="select" lazy="false" inverse="true">
<key>
<column name="prod_id" not-null="true"/>
</key>
<one-to-many class="br.com.bikers.model.itenspedido.ItensPedido"/>
</set>
</class>
</hibernate-mapping>
Código que retorna os itens da tabela
public List<T> pesquisarTodos() {
Transaction transaction = null;
try {
transaction = getSession().beginTransaction();
Query query = session.createQuery("from "+clazz.getSimpleName());
return query.list();
} catch (HibernateException e) {
transaction.rollback();
e.printStackTrace();
} finally {
session.close();
}
return null;
}