22/07/2008, 12:14
|
| | 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 |