Hola gente, queria tirar esta duda que aun no la tengo muy clara y necesito un par de opiniones al respecto.
El tema es el siguiente:
Estoy laburando con Hibernate 3 y tengo en mi modelo de dominio las clases Usuario, Evento, Pais, Provincia, Ciudad... con sus respectivas relaciones.
La duda viene porque estoy haciendo un mantenimiento (ABM, CRUD o como quieran llamarle) de estas entidades y al momento de por ejemplo borrar un pais, tendria que validar que ese objeto pais no este asociado a ningun otro objeto como por ejemplo Evento, Usuario, etc.
Ahora para realizar esta validacion tengo dos acercamientos...
1º - Obtengo cada uno de los objetos que contienen la entidad a eliminar, y chequeo que no exista la asociacion...[ !evento.getPais().equals(paisAEliminar) ] y asi con cada uno de mis objetos del modelo de dominio que tengan paises... lo que supone un proceso largo y tedioso... ademas de poco performante...
o bien, acercamiento ...
2º - elimino directamente el pais y que la BD pinche por violacion de constraints. ( En este caso se complica el tema de saber que fue realmente lo que sucedio... ya que la BD lanzara una JDBCException???? ... que sera cacheada por Hibernate y Wrappeada posteriormente a una de sus exceptions...
Cual de los dos acercamientos utilizan, prefieren y/o me aconsejan utilizar...
Existe alguna otra manera de realizar estas validaciones de negocio...??
Desde ya muchas gracias a todos...
Saludos...
Mauro.
|