Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/07/2008, 12:14
Mercedes26
 
Fecha de Ingreso: marzo-2008
Mensajes: 19
Antigüedad: 16 años, 8 meses
Puntos: 0
Eliminar con Hibernate

Buenas tardes!!

Espero que alguien pueda echarme una mano, porque no consigo encontrar la solución...

Estoy intentando eliminar una fila de mi base de datos (MySql) con Hibernate, y resulta que este objeto tiene relaciones con otras tablas (claves foráneas).

Bien, el comportamiento que deseo es que si elimino por ejemplo, una empresa, se eliminen a su vez todo lo relacionado con ella, como clientes, presupuestos, proveedores... Para ello, he utilizado el atributo cascade="delete" en los <set>.

Al intentar eliminarlo me salta el siguiente error:

org.hibernate.PropertyValueException: not-null property references a null or transient value: es.proyecto.hibernate.mapeos.Empresa.usuarios

at org.hibernate.engine.Nullability.checkNullability( Nullability.java:72)

at org.hibernate.event.def.DefaultDeleteEventListener .deleteEntity(DefaultDeleteEventListener.java:173)

at org.hibernate.event.def.DefaultDeleteEventListener .onDelete(DefaultDeleteEventListener.java:110)

at org.hibernate.impl.SessionImpl.fireDelete(SessionI mpl.java:761)

at org.hibernate.impl.SessionImpl.delete(SessionImpl. java:739)

at es.proyecto.hibernate.dao.EmpresaDAO.eliminarEmpre sa(EmpresaDAO.java:191)

at es.proyecto.hibernate.bl.EmpresaBL.eliminarEmpresa (EmpresaBL.java:32)

at es.proyecto.struts.action.EmpresaAction.eliminarEm presa(EmpresaAction.java:229)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Nativ e Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(Native MethodAccessorImpl.java:39)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(De legatingMethodAccessorImpl.java:25)

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

at org.apache.struts.actions.DispatchAction.dispatchM ethod(DispatchAction.java:274)

at org.apache.struts.actions.DispatchAction.execute(D ispatchAction.java:194)

at org.apache.struts.action.RequestProcessor.processA ctionPerform(RequestProcessor.java:419)

at org.apache.struts.action.RequestProcessor.process( RequestProcessor.java:224)

at org.apache.struts.action.ActionServlet.process(Act ionServlet.java:1194)

at org.apache.struts.action.ActionServlet.doGet(Actio nServlet.java:414)

at javax.servlet.http.HttpServlet.service(HttpServlet .java:690)

at javax.servlet.http.HttpServlet.service(HttpServlet .java:803)

at org.apache.catalina.core.ApplicationFilterChain.in ternalDoFilter(ApplicationFilterChain.java:269)

at org.apache.catalina.core.ApplicationFilterChain.do Filter(ApplicationFilterChain.java:188)

at org.apache.catalina.core.StandardWrapperValve.invo ke(StandardWrapperValve.java:210)

at org.apache.catalina.core.StandardContextValve.invo ke(StandardContextValve.java:174)

at org.apache.catalina.core.StandardHostValve.invoke( StandardHostValve.java:127)

at org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:117)

at org.apache.catalina.core.StandardEngineValve.invok e(StandardEngineValve.java:108)

at org.apache.catalina.connector.CoyoteAdapter.servic e(CoyoteAdapter.java:151)

at org.apache.coyote.http11.Http11Processor.process(H ttp11Processor.java:870)

at org.apache.coyote.http11.Http11BaseProtocol$Http11 ConnectionHandler.processConnection(Http11BaseProt ocol.java:665)

at org.apache.tomcat.util.net.PoolTcpEndpoint.process Socket(PoolTcpEndpoint.java:528)

at org.apache.tomcat.util.net.LeaderFollowerWorkerThr ead.runIt(LeaderFollowerWorkerThread.java:81)

at org.apache.tomcat.util.threads.ThreadPool$ControlR unnable.run(ThreadPool.java:685)

at java.lang.Thread.run(Thread.java:595)




Me imagino que haya gente que si que haya podido realizar esta operación pues no me parece que sea nada extraño.

Muchas gracias

Un saludo