Pues tal vez no entendí muy bien la pregunta, pero simplemente con utilizar un bloque try/catch alrededor del código que hace la llamada debería ser suficiente, ahí mismo se podría hacer el manejo del error, hacer rollback, etc.
Mira.. la aplicación no debe permitir que se borre el registro si este tiene alguna relación.... 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í:
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..
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
Re: Problema Hibernate al borrar registro
Pues tal vez no entendí muy bien la pregunta, pero simplemente con utilizar un bloque try/catch alrededor del código que hace la llamada debería ser suficiente, ahí mismo se podría hacer el manejo del error, hacer rollback, etc.
Saludos
Javier
Re: Problema Hibernate al borrar registro
Hola! gracias por la respuesta....
Mira.. la aplicación no debe permitir que se borre el registro si este tiene alguna relación.... 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í:
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..
HibernateUtil.getInstance().startTransaccion();
HibernateUtil.getInstance().getSession().delete(this);
}
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
Re: Problema Hibernate al borrar registro
Pues es extraño que no se pueda cachar la excepción, finalmente todo lo demás dependería de ello.
try {
HibernateUtil.getInstance().startTransaccion();
HibernateUtil.getInstance().getSession().delete(this);
} catch (HibernateException he) {
// Manejo del error
SQLException sqle = he.getSQLException();
String sqlState = sqle.getSQLState();
int errorCode = sqle.getErrorCode();
SQLException sqle2 = sqle.getNextException();
}
}
¿Algo como lo anterior revela algo?
Saludos
Javier