Foros del Web » Programación para mayores de 30 ;) » Java »

Borrar un objeto Hibernate

Estas en el tema de Borrar un objeto Hibernate en el foro de Java en Foros del Web. Hola, estoy intentando eliminar un elemento(un equipo y le estoy pasando el id del equipo) de la base de datos con hibernate, cuya relacion es ...
  #1 (permalink)  
Antiguo 30/06/2009, 03:16
 
Fecha de Ingreso: septiembre-2006
Mensajes: 114
Antigüedad: 17 años, 7 meses
Puntos: 1
Borrar un objeto Hibernate

Hola,

estoy intentando eliminar un elemento(un equipo y le estoy pasando el id del equipo) de la base de datos con hibernate, cuya relacion es 1-n y me da el siguiente error:

Not closing pre-bound Hibernate Session after HibernateTemplate
org.springframework.dao.DataIntegrityViolationExce ption: not-null property references a null or transient value: com.apuestasWeb.bean.equipo.Equipo.deporte; nested exception is org.hibernate.PropertyValueException: not-null property references a null or transient value: com.apuestasWeb.bean.equipo.Equipo.deporte
at org.springframework.orm.hibernate3.SessionFactoryU tils.convertHibernateAccessException(SessionFactor yUtils.java:628).

Alguien me puede ayudar. Gracias
  #2 (permalink)  
Antiguo 30/06/2009, 14:06
 
Fecha de Ingreso: abril-2009
Mensajes: 82
Antigüedad: 15 años
Puntos: 2
Respuesta: Borrar un objeto Hibernate

Buenas:

Por lo que describe el error, creo que tienes que eliminar primero todas las referencias que tiene el equipo en otras tablas, evitando así que se produzca "not-null property references a null or transient value", es decir, que las referencias a ese objeto (que no pueden ser nulas) sean nulas.

Tambien puedes probar poniendo en la base de datos (y configurandolo en hibernate) que todas esas referencias se borren al borrarse el equipo, cosa que creo más aconsejable.

Un saludo.
  #3 (permalink)  
Antiguo 01/07/2009, 00:14
 
Fecha de Ingreso: septiembre-2006
Mensajes: 114
Antigüedad: 17 años, 7 meses
Puntos: 1
Respuesta: Borrar un objeto Hibernate

Hola!
Si ejecuto directamente en la base de datos la consulta "delete" me funciona sin problemas, pero si lo hago mediante hibernate no me funciona, lo mismo tengo mal el mapeo, si pongo el mi mapeo para esas tablas me podeis echar una mano?

Les estoy muy agradecida. Un saludo
  #4 (permalink)  
Antiguo 01/07/2009, 10:08
Usuario no validado
 
Fecha de Ingreso: junio-2008
Mensajes: 386
Antigüedad: 15 años, 10 meses
Puntos: 10
Respuesta: Borrar un objeto Hibernate

Hola

Puedes poner el mapeo de tus tablas?? para darnos una idea.

Tambien como haces el borrado?? con session.delete() ???

saludos!
  #5 (permalink)  
Antiguo 01/07/2009, 13:57
 
Fecha de Ingreso: septiembre-2006
Mensajes: 114
Antigüedad: 17 años, 7 meses
Puntos: 1
Respuesta: Borrar un objeto Hibernate

Hola,

Mi mapeo es para la tabla de deporte:

<class name="com.apuestasWeb.bean.deporte.Deporte" table="DEPORTE">
<id name="idDeporte" column="IDDEPORTE">
<generator class="native"/>
</id>
<property name="nombre" column="NOMBRE" not-null="false" type="java.lang.String"/>

<bag name="lstEquipos" lazy="true" inverse="true" table="EQUIPO">
<key column="IDDEPORTE" />
<one-to-many class="com.apuestasWeb.bean.equipo.Equipo"/>
</bag>

</class>

para la tabla de equipo:

<class name="com.apuestasWeb.bean.equipo.Equipo" table="EQUIPO">
<id name="idEquipo" column="IDEQUIPO">
<generator class="native"/>
</id>
<property name="nombre" column="NOMBRE" not-null="false" type="java.lang.String"/>
<property name="anioFundacion" column="ANIOFUNDACION" not-null="false" type="java.lang.Integer"/>
<property name="ciudad" column="CIUDAD" not-null="false" type="java.lang.String"/>
<property name="estadio" column="ESTADIO" not-null="false" type="java.lang.String"/>

<many-to-one name="deporte" class="com.apuestasWeb.bean.deporte.Deporte" column="IDDEPORTE" not-null="true" insert="true" update="true" unique="false" lazy="false"/>

</class>

Y para borrar el elemento utilizo: getHibernateTemplate().delete(equipo);

En el que el objeto equipo tiene solo la idEquipo con valor el resto de atributos es null.

Gracias por vuestra ayuda.
  #6 (permalink)  
Antiguo 02/07/2009, 12:15
 
Fecha de Ingreso: septiembre-2006
Mensajes: 114
Antigüedad: 17 años, 7 meses
Puntos: 1
Respuesta: Borrar un objeto Hibernate

gracias por vuestra ayuda, ya logre solucionarlo, el problema era en el mapeo

Cita:
<many-to-one name="deporte" class="com.apuestasWeb.bean.deporte.Deporte" column="IDDEPORTE" not-null="true" insert="true" update="true" unique="false" lazy="false"/>
lo he cambiado por

<many-to-one name="deporte" class="com.apuestasWeb.bean.deporte.Deporte" column="IDDEPORTE" not-null="false" insert="true" update="true" unique="false" lazy="false"/>
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:38.