29/07/2008, 14:05
|
| | Fecha de Ingreso: marzo-2008
Mensajes: 19
Antigüedad: 16 años, 10 meses Puntos: 0 | |
Respuesta: Eliminar con Hibernate Antes de nada muchisimas gracias por tu explicación.
Ahora bien, sigo teniendo algunas dudas, y es que no entiendo, porque al intentar eliminar la empresa me da ese error de usuarios, pues no se está eliminando el usuario.
He puesto el delete cascade en la base de datos, pero hibernate no lo mapea :(
Te comento la configuración de Hibernate para estas clases a ver si me puedes ayudar: Empresa.hbm.xml
<hibernate-mapping>
<class name="es.proyecto.hibernate.mapeos.Empresa" table="empresa" catalog="universidad">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="increment" />
</id> <many-to-one name="usuarios" class="es.proyecto.hibernate.mapeos.Usuarios" fetch="select" cascade="delete">
<column name="email_usuario" length="45" not-null="true" />
</many-to-one> <property name="nombre" type="java.lang.String">
<column name="nombre" length="45" not-null="true" />
</property>
<property name="cif" type="java.lang.String">
<column name="cif" length="25" not-null="true" />
</property>
<set name="presupuestoses" inverse="true" cascade="delete">
<key>
<column name="idEmp" not-null="true" />
</key>
<one-to-many class="es.proyecto.hibernate.mapeos.Presupuestos" />
</set>
<set name="formaPagos" inverse="true" cascade="delete">
<key>
<column name="idEmp" not-null="true" />
</key>
<one-to-many class="es.proyecto.hibernate.mapeos.FormaPago" />
</set>
<set name="pedidos" inverse="true" cascade="delete">
<key>
<column name="idEmp" not-null="true" />
</key>
<one-to-many class="es.proyecto.hibernate.mapeos.Pedido" />
</set>
<set name="productos" inverse="true" cascade="delete">
<key>
<column name="emp" not-null="true" />
</key>
<one-to-many class="es.proyecto.hibernate.mapeos.Producto" />
</set>
<set name="clientes" inverse="true" cascade="delete">
<key>
<column name="idEmpresa" not-null="true" />
</key>
<one-to-many class="es.proyecto.hibernate.mapeos.Cliente" />
</set>
</class>
</hibernate-mapping> Usuarios.hbm.xml
<hibernate-mapping>
<class name="es.proyecto.hibernate.mapeos.Usuarios" table="usuarios" catalog="universidad">
<id name="email" type="java.lang.String">
<column name="email" length="45" />
<generator class="assigned" />
</id>
<property name="contrasena" type="java.lang.String">
<column name="contrasena" length="6" not-null="true" />
</property>
<property name="nombre" type="java.lang.String">
<column name="nombre" length="25" not-null="true" />
</property>
<property name="apellidos" type="java.lang.String">
<column name="apellidos" length="45" not-null="true" />
</property>
<property name="fechanac" type="java.lang.String">
<column name="fechanac" length="15" not-null="true" />
</property> <set name="empresas" inverse="true" cascade="delete">
<key>
<column name="email_usuario" length="45" not-null="true" />
</key>
<one-to-many class="es.proyecto.hibernate.mapeos.Empresa" />
</set> </class>
</hibernate-mapping>
Comentar que para eliminar realizo una operación así:
sesion.delete(empresa);
¿No es posible con esta configuración que si se elimina una empresa se eliminen también los clientes, presupuestos,.. relacionados sin eliminar el usuario al que pertenece?
Muchas gracias
Un saludo |