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) { public static void main(String[] args) {
AppCine app = new AppCine(); AppCine app = new AppCine();
// app.probarOperacionesContinente(); app.probarOperacionesContinente();
// app.probarOperacionesPais(); app.probarOperacionesPais();
// app.probarOperacionesDirector(); app.probarOperacionesDirector();
// app.probarOperacionesPelicula(); app.probarOperacionesPelicula();
app.probarOperacionesActor(); app.probarOperacionesActor();
} }
private void probarOperacionesContinente() { private void probarOperacionesContinente() {
@ -66,7 +65,9 @@ public class AppCine {
System.out.println("actualizarEntidad: " + continente); System.out.println("actualizarEntidad: " + continente);
// Borrar continente // Borrar continente
iDaoContinente.borrarEntidadPorClave("01"); String codigoContinente="02";
iDaoContinente.borrarEntidadPorClave(codigoContinente);
System.out.println("borrarEntidadPorClave: Continente - " + codigoContinente);
} }
private void probarOperacionesPais() { private void probarOperacionesPais() {
@ -97,7 +98,9 @@ public class AppCine {
System.out.println("actualizarEntidad: " + pais); System.out.println("actualizarEntidad: " + pais);
// Borrar Pais // Borrar Pais
iDaoPais.borrarEntidadPorClave(147); int idPais=71;
iDaoPais.borrarEntidadPorClave(idPais);
System.out.println("borrarEntidadPorClave: Pais - " + idPais);
} }
private void probarOperacionesDirector() { private void probarOperacionesDirector() {
@ -130,7 +133,9 @@ public class AppCine {
System.out.println("actualizarEntidad: " + director); System.out.println("actualizarEntidad: " + director);
// Borrar Director // Borrar Director
iDaoDirector.borrarEntidadPorClave(3); int idDirector =3;
iDaoDirector.borrarEntidadPorClave(idDirector);
System.out.println("borrarEntidadPorClave: Director - " + idDirector);
} }
private void probarOperacionesPelicula() { private void probarOperacionesPelicula() {
@ -169,7 +174,9 @@ public class AppCine {
System.out.println("actualizarEntidad: " + director); System.out.println("actualizarEntidad: " + director);
// Borrar Película // Borrar Película
iDaoPelicula.borrarEntidadPorClave(3); int idPelicula=3;
iDaoPelicula.borrarEntidadPorClave(idPelicula);
System.out.println("borrarEntidadPorClave: Película - " + idPelicula);
} }
private void probarOperacionesActor() { private void probarOperacionesActor() {
@ -200,7 +207,9 @@ public class AppCine {
System.out.println("actualizarEntidad: " + actor2); System.out.println("actualizarEntidad: " + actor2);
// Borrar Actor // 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(); transaccion.commit();
} catch (HibernateException e) { } catch (HibernateException e) {
transaccion.rollback();
e.printStackTrace(); e.printStackTrace();
} }
} }
@ -82,6 +83,7 @@ public class ActorDaoHibernate implements IOperacionesDAOEntidad<Actor, Integer>
transaccion.commit(); transaccion.commit();
} catch (Exception e) { } catch (Exception e) {
transaccion.rollback();
e.printStackTrace(); e.printStackTrace();
} }
} }
@ -106,6 +108,7 @@ public class ActorDaoHibernate implements IOperacionesDAOEntidad<Actor, Integer>
transaccion.commit(); transaccion.commit();
} catch (HibernateException e) { } catch (HibernateException e) {
transaccion.rollback();
e.printStackTrace(); e.printStackTrace();
} }
} }

View File

@ -93,6 +93,41 @@ public class ContinenteDaoHibernate implements IOperacionesDAOEntidad<Continente
try (Session sesion = GestorSesionesHibernate.getSession();) { try (Session sesion = GestorSesionesHibernate.getSession();) {
transaccion = sesion.beginTransaction(); 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"; String sentenciaBorradoPaiseesHQL = "DELETE FROM Pais p WHERE p.continente.codigo = :codigo";
MutationQuery senteciaBorradoPaises = sesion.createMutationQuery(sentenciaBorradoPaiseesHQL); MutationQuery senteciaBorradoPaises = sesion.createMutationQuery(sentenciaBorradoPaiseesHQL);
senteciaBorradoPaises.setParameter("codigo", clave); senteciaBorradoPaises.setParameter("codigo", clave);
@ -103,13 +138,11 @@ public class ContinenteDaoHibernate implements IOperacionesDAOEntidad<Continente
sentenciaBorradoContinente.setParameter("codigo", clave); sentenciaBorradoContinente.setParameter("codigo", clave);
sentenciaBorradoContinente.executeUpdate(); sentenciaBorradoContinente.executeUpdate();
/*
* Continente continente = sesion.find(Continente.class, codigo);
* sesion.remove(continente);
*/
transaccion.commit(); transaccion.commit();
} catch (HibernateException e) { } catch (HibernateException e) {
transaccion.rollback();
e.printStackTrace(); e.printStackTrace();
} }
} }

View File

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

View File

@ -66,6 +66,7 @@ public class PaisDaoHibernate implements IOperacionesDAOEntidad<Pais, Integer> {
transaccion.commit(); transaccion.commit();
} catch (HibernateException e) { } catch (HibernateException e) {
transaccion.rollback();
e.printStackTrace(); e.printStackTrace();
} }
} }
@ -83,6 +84,7 @@ public class PaisDaoHibernate implements IOperacionesDAOEntidad<Pais, Integer> {
transaccion.commit(); transaccion.commit();
} catch (Exception e) { } catch (Exception e) {
transaccion.rollback();
e.printStackTrace(); e.printStackTrace();
} }
} }
@ -93,17 +95,50 @@ public class PaisDaoHibernate implements IOperacionesDAOEntidad<Pais, Integer> {
try (Session sesion = GestorSesionesHibernate.getSession();) { try (Session sesion = GestorSesionesHibernate.getSession();) {
transaccion = sesion.beginTransaction(); 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"; // Borrado de los actores cuyo país de nacimiento es en el país a borrar
MutationQuery senteciaBorradoPaises = sesion.createMutationQuery(sentenciaBorradoPaisesHQL); 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.setParameter("identificador", clave);
senteciaBorradoPaises.executeUpdate(); senteciaBorradoPaises.executeUpdate();
/*
Pais continente = sesion.find(Pais.class, clave);
sesion.remove(continente);
*/
transaccion.commit(); transaccion.commit();
} catch (HibernateException e) { } catch (HibernateException e) {
transaccion.rollback();
e.printStackTrace(); e.printStackTrace();
} }
} }