Ver Mensaje Individual
  #3 (permalink)  
Antiguo 01/06/2009, 13:57
fsiordia
 
Fecha de Ingreso: mayo-2009
Mensajes: 3
Antigüedad: 15 años
Puntos: 0
Respuesta: Problema Hibernate al borrar un registro

Si, mira... ese es el error que me regresa la BD al intentar borrar esa fila de la tabla. Me manda ese error pues no se puede borrar un registro que tiene una relacion.

En mi programa cada vez que trato de borrar una fila de la tabla Area, se creashea pues se lanza esta exepción. Esto no deberia de pasar, pues si el usuario trata de borrar un registro que esta relacionado, el programa deberia de cachar alguna escepcion y mostrarle un mensaje al usuario diciendo q la accion no es permitida.

Antes de usar hibernate, con un simple try/catch cachaba la excepción (una SQLException) y checaba que si el sqlstate era 23000 entonces le avisaba al usuario que no podía borrar ese registro pues ya estaba relacionado.. quedaba algo así:

catch (SQLException e) {
if (e.getSQLState().equals("23000")) {
//avisar del error
} else {
throw e;
}
}

El problema que he tenido(como soy nuevo en hibernate) es que no encuentro como cachar esa excepción y verificar que la SQLException tiene un sqlstate 23000 para así mandar el mensaje de error al usuario, he intentado con muchas cosas pero no le veo pies ni cabeza.. aquí esta el método de mi clase Area donde hago el delete..

protected void deleteThis(){

HibernateUtil.getInstance().startTransaccion();
HibernateUtil.getInstance().getSession().delete(th is);

}

he intentado cachar la excepción con un HibernateException y un .getCause() pero simplemente no me funciona.. no se que pueda estar haciendo mal.. gracias de antemano.. saludos