Incluir pruebas borrado en DAO

This commit is contained in:
Isidoro Nevares Martín 2025-12-17 17:02:55 +01:00
parent 12880549ce
commit ec673174d9
5 changed files with 104 additions and 21 deletions

View File

@ -30,16 +30,15 @@ public class AppCine {
public static void main(String[] args) {
AppCine app = new AppCine();
// app.probarOperacionesContinente();
app.probarOperacionesContinente();
// app.probarOperacionesPais();
app.probarOperacionesPais();
// app.probarOperacionesDirector();
app.probarOperacionesDirector();
// app.probarOperacionesPelicula();
app.probarOperacionesPelicula();
app.probarOperacionesActor();
}
private void probarOperacionesContinente() {
@ -66,7 +65,9 @@ public class AppCine {
System.out.println("actualizarEntidad: " + continente);
// Borrar continente
iDaoContinente.borrarEntidadPorClave("01");
String codigoContinente="02";
iDaoContinente.borrarEntidadPorClave(codigoContinente);
System.out.println("borrarEntidadPorClave: Continente - " + codigoContinente);
}
private void probarOperacionesPais() {
@ -97,7 +98,9 @@ public class AppCine {
System.out.println("actualizarEntidad: " + pais);
// Borrar Pais
iDaoPais.borrarEntidadPorClave(147);
int idPais=71;
iDaoPais.borrarEntidadPorClave(idPais);
System.out.println("borrarEntidadPorClave: Pais - " + idPais);
}
private void probarOperacionesDirector() {
@ -130,7 +133,9 @@ public class AppCine {
System.out.println("actualizarEntidad: " + director);
// Borrar Director
iDaoDirector.borrarEntidadPorClave(3);
int idDirector =3;
iDaoDirector.borrarEntidadPorClave(idDirector);
System.out.println("borrarEntidadPorClave: Director - " + idDirector);
}
private void probarOperacionesPelicula() {
@ -169,7 +174,9 @@ public class AppCine {
System.out.println("actualizarEntidad: " + director);
// Borrar Película
iDaoPelicula.borrarEntidadPorClave(3);
int idPelicula=3;
iDaoPelicula.borrarEntidadPorClave(idPelicula);
System.out.println("borrarEntidadPorClave: Película - " + idPelicula);
}
private void probarOperacionesActor() {
@ -200,7 +207,9 @@ public class AppCine {
System.out.println("actualizarEntidad: " + actor2);
// Borrar Actor
iDaoActor.borrarEntidadPorClave(4);
int idActor=4;
iDaoActor.borrarEntidadPorClave(idActor);
System.out.println("borrarEntidadPorClave: Actor - " + idActor);
}
}

View File

@ -65,6 +65,7 @@ public class ActorDaoHibernate implements IOperacionesDAOEntidad<Actor, Integer>
transaccion.commit();
} catch (HibernateException e) {
transaccion.rollback();
e.printStackTrace();
}
}
@ -82,6 +83,7 @@ public class ActorDaoHibernate implements IOperacionesDAOEntidad<Actor, Integer>
transaccion.commit();
} catch (Exception e) {
transaccion.rollback();
e.printStackTrace();
}
}
@ -106,6 +108,7 @@ public class ActorDaoHibernate implements IOperacionesDAOEntidad<Actor, Integer>
transaccion.commit();
} catch (HibernateException e) {
transaccion.rollback();
e.printStackTrace();
}
}

View File

@ -93,6 +93,41 @@ public class ContinenteDaoHibernate implements IOperacionesDAOEntidad<Continente
try (Session sesion = GestorSesionesHibernate.getSession();) {
transaccion = sesion.beginTransaction();
// Borrado de repartos en los que la localización de la película es en un país del continente a borrar
// Borrado de repartos en los que el país de nacimiento del actor es en un país del continente a borrar
// Borrado de repartos en los que el país de nacimiento del director de la película es en un país del continente a borrar
String sentenciaBorradoRepartosPaisHQL = """
DELETE FROM Reparto r
WHERE (r.pelicula.paisLocalizacion.continente.codigo = :codigo
OR r.actor.pais.continente.codigo = :codigo
OR r.pelicula.director.pais.continente.codigo = :codigo)
""";
MutationQuery senteciaBorradoRepartosPais = sesion.createMutationQuery(sentenciaBorradoRepartosPaisHQL);
senteciaBorradoRepartosPais.setParameter("codigo", clave);
senteciaBorradoRepartosPais.executeUpdate();
// Borrado de los actores cuyo país de nacimiento es en un país del continente a borrar
String sentenciaBorradoActorPaisHQL = "DELETE FROM Actor a WHERE a.pais.continente.codigo = :codigo";
MutationQuery senteciaBorradoActoresPais = sesion.createMutationQuery(sentenciaBorradoActorPaisHQL);
senteciaBorradoActoresPais.setParameter("codigo", clave);
senteciaBorradoActoresPais.executeUpdate();
// Borrado de las Películas cuyo país de nacimiento es en un país del continente a borrar
String sentenciaBorradoPeliculasPaisHQL = """
DELETE FROM Pelicula p WHERE (p.paisLocalizacion.continente.codigo = :codigo
OR p.director.pais.continente.codigo = :codigo)
""";
MutationQuery senteciaBorradoRepartosPeliculasPais = sesion.createMutationQuery(sentenciaBorradoPeliculasPaisHQL);
senteciaBorradoRepartosPeliculasPais.setParameter("codigo", clave);
senteciaBorradoRepartosPeliculasPais.executeUpdate();
// Borrado de los directores cuyo país de nacimiento es en un país del continente a borrar
String sentenciaBorradoDirectoresPaisHQL = "DELETE FROM Director d WHERE d.pais.continente.codigo = :codigo";
MutationQuery senteciaBorradoDirectoresPais = sesion.createMutationQuery(sentenciaBorradoDirectoresPaisHQL);
senteciaBorradoDirectoresPais.setParameter("codigo", clave);
senteciaBorradoDirectoresPais.executeUpdate();
// Borrado de los países del continente a borrar
String sentenciaBorradoPaiseesHQL = "DELETE FROM Pais p WHERE p.continente.codigo = :codigo";
MutationQuery senteciaBorradoPaises = sesion.createMutationQuery(sentenciaBorradoPaiseesHQL);
senteciaBorradoPaises.setParameter("codigo", clave);
@ -103,13 +138,11 @@ public class ContinenteDaoHibernate implements IOperacionesDAOEntidad<Continente
sentenciaBorradoContinente.setParameter("codigo", clave);
sentenciaBorradoContinente.executeUpdate();
/*
* Continente continente = sesion.find(Continente.class, codigo);
* sesion.remove(continente);
*/
transaccion.commit();
} catch (HibernateException e) {
transaccion.rollback();
e.printStackTrace();
}
}

View File

@ -65,6 +65,7 @@ public class DirectorDaoHibernate implements IOperacionesDAOEntidad<Director, In
transaccion.commit();
} catch (HibernateException e) {
transaccion.rollback();
e.printStackTrace();
}
}
@ -82,6 +83,7 @@ public class DirectorDaoHibernate implements IOperacionesDAOEntidad<Director, In
transaccion.commit();
} catch (Exception e) {
transaccion.rollback();
e.printStackTrace();
}
}
@ -113,6 +115,7 @@ public class DirectorDaoHibernate implements IOperacionesDAOEntidad<Director, In
*/
transaccion.commit();
} catch (HibernateException e) {
transaccion.rollback();
e.printStackTrace();
}
}

View File

@ -66,6 +66,7 @@ public class PaisDaoHibernate implements IOperacionesDAOEntidad<Pais, Integer> {
transaccion.commit();
} catch (HibernateException e) {
transaccion.rollback();
e.printStackTrace();
}
}
@ -83,6 +84,7 @@ public class PaisDaoHibernate implements IOperacionesDAOEntidad<Pais, Integer> {
transaccion.commit();
} catch (Exception e) {
transaccion.rollback();
e.printStackTrace();
}
}
@ -93,17 +95,50 @@ public class PaisDaoHibernate implements IOperacionesDAOEntidad<Pais, Integer> {
try (Session sesion = GestorSesionesHibernate.getSession();) {
transaccion = sesion.beginTransaction();
// Borrado de repartos en los que la localización de la película es en el país a borrar
// Borrado de repartos en los que el país de nacimiento del actor es en el país a borrar
// Borrado de repartos en los que el país de nacimiento del director de la película es en el país a borrar
String sentenciaBorradoRepartosPaisHQL = """
DELETE FROM Reparto r
WHERE (r.pelicula.paisLocalizacion.identificador = :identificador
OR r.actor.pais.identificador = :identificador
OR r.pelicula.director.pais.identificador = :identificador)
""";
MutationQuery senteciaBorradoRepartosPais = sesion.createMutationQuery(sentenciaBorradoRepartosPaisHQL);
senteciaBorradoRepartosPais.setParameter("identificador", clave);
senteciaBorradoRepartosPais.executeUpdate();
String sentenciaBorradoPaisesHQL = "DELETE FROM Pais p WHERE p.identificador = :identificador";
MutationQuery senteciaBorradoPaises = sesion.createMutationQuery(sentenciaBorradoPaisesHQL);
// Borrado de los actores cuyo país de nacimiento es en el país a borrar
String sentenciaBorradoActorPaisHQL = "DELETE FROM Actor a WHERE a.pais.identificador = :identificador";
MutationQuery senteciaBorradoActoresPais = sesion.createMutationQuery(sentenciaBorradoActorPaisHQL);
senteciaBorradoActoresPais.setParameter("identificador", clave);
senteciaBorradoActoresPais.executeUpdate();
// Borrado de los actores cuyo país de nacimiento es en un país del continente a borrar
String sentenciaBorradoPeliculasPaisHQL = """
DELETE FROM Pelicula p
WHERE (p.paisLocalizacion.identificador = :identificador
OR p.director.pais.identificador = :identificador)
""";
MutationQuery senteciaBorradoRepartosPeliculasPais = sesion.createMutationQuery(sentenciaBorradoPeliculasPaisHQL);
senteciaBorradoRepartosPeliculasPais.setParameter("identificador", clave);
senteciaBorradoRepartosPeliculasPais.executeUpdate();
// Borrado de los directores cuyo país de nacimiento es en un país del continente a borrar
String sentenciaBorradoDirectoresPaisHQL = "DELETE FROM Director d WHERE d.pais.identificador = :identificador";
MutationQuery senteciaBorradoDirectoresPais = sesion.createMutationQuery(sentenciaBorradoDirectoresPaisHQL);
senteciaBorradoDirectoresPais.setParameter("identificador", clave);
senteciaBorradoDirectoresPais.executeUpdate();
// Borrado de los países del continente a borrar
String sentenciaBorradoPaiseesHQL = "DELETE FROM Pais p WHERE p.identificador = :identificador";
MutationQuery senteciaBorradoPaises = sesion.createMutationQuery(sentenciaBorradoPaiseesHQL);
senteciaBorradoPaises.setParameter("identificador", clave);
senteciaBorradoPaises.executeUpdate();
/*
Pais continente = sesion.find(Pais.class, clave);
sesion.remove(continente);
*/
senteciaBorradoPaises.executeUpdate();
transaccion.commit();
} catch (HibernateException e) {
transaccion.rollback();
e.printStackTrace();
}
}