gestión rollback

This commit is contained in:
Isidoro Nevares Martín 2025-12-18 14:27:35 +01:00
parent 91aff80cec
commit 63628feb7b
5 changed files with 179 additions and 72 deletions

View File

@ -2,7 +2,6 @@ package org.lapaloma.aadd.cine.dao.hbnt;
import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.query.MutationQuery;
@ -56,26 +55,33 @@ public class ActorDaoHibernate implements IOperacionesDAOEntidad<Actor, Integer>
@Override
public void crearEntidad(Actor entidad) {
Transaction transaccion = null;
// try con recursos "cerrables": Connection, Statement
try (Session sesion = GestorSesionesHibernate.getSession();) {
Session sesion = null;
try {
sesion = GestorSesionesHibernate.getSession();
transaccion = sesion.beginTransaction();
sesion.persist(entidad);
transaccion.commit();
} catch (HibernateException e) {
} catch (Exception e) {
if (transaccion != null && transaccion.isActive()) {
transaccion.rollback();
}
e.printStackTrace();
} finally {
if (sesion != null) {
sesion.close();
}
}
}
@Override
public void actualizarEntidad(Actor entidad) {
Transaction transaccion = null;
Session sesion = null;
// try con recursos "cerrables": Session
try (Session sesion = GestorSesionesHibernate.getSession();) {
try {
sesion = GestorSesionesHibernate.getSession();
transaccion = sesion.beginTransaction();
if (!sesion.contains(entidad))
@ -83,17 +89,26 @@ public class ActorDaoHibernate implements IOperacionesDAOEntidad<Actor, Integer>
transaccion.commit();
} catch (Exception e) {
if (transaccion != null && transaccion.isActive()) {
transaccion.rollback();
}
e.printStackTrace();
} finally {
if (sesion != null) {
sesion.close();
}
}
}
@Override
public void borrarEntidadPorClave(Integer clave) {
Transaction transaccion = null;
Session sesion = null;
try (Session sesion = GestorSesionesHibernate.getSession();) {
try {
sesion = GestorSesionesHibernate.getSession();
transaccion = sesion.beginTransaction();
// Borrado de Repartos de un Actor
String sentenciaBorradoRepartosHQL = "DELETE FROM Reparto r WHERE r.actor.identificador = :identificador";
MutationQuery senteciaBorradoRepartos = sesion.createMutationQuery(sentenciaBorradoRepartosHQL);
@ -107,9 +122,15 @@ public class ActorDaoHibernate implements IOperacionesDAOEntidad<Actor, Integer>
senteciaBorradoActor.executeUpdate();
transaccion.commit();
} catch (HibernateException e) {
} catch (Exception e) {
if (transaccion != null && transaccion.isActive()) {
transaccion.rollback();
}
e.printStackTrace();
} finally {
if (sesion != null) {
sesion.close();
}
}
}

View File

@ -2,7 +2,6 @@ package org.lapaloma.aadd.cine.dao.hbnt;
import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.query.MutationQuery;
@ -56,45 +55,63 @@ public class ContinenteDaoHibernate implements IOperacionesDAOEntidad<Continente
@Override
public void crearEntidad(Continente entidad) {
Transaction transaccion = null;
// try con recursos "cerrables": Connection, Statement
try (Session sesion = GestorSesionesHibernate.getSession();) {
Session sesion = null;
try {
sesion = GestorSesionesHibernate.getSession();
transaccion = sesion.beginTransaction();
sesion.persist(entidad);
transaccion.commit();
} catch (HibernateException e) {
} catch (Exception e) {
if (transaccion != null && transaccion.isActive()) {
transaccion.rollback();
e.printStackTrace();
}
e.printStackTrace();
} finally {
if (sesion != null) {
sesion.close();
}
}
}
@Override
public void actualizarEntidad(Continente entidad) {
Transaction transaccion = null;
Session sesion = null;
// try con recursos "cerrables": Session
try (Session sesion = GestorSesionesHibernate.getSession();) {
try {
sesion = GestorSesionesHibernate.getSession();
transaccion = sesion.beginTransaction();
if (!sesion.contains(entidad))
sesion.merge(entidad);
transaccion.commit();
} catch (Exception e) {
if (transaccion != null && transaccion.isActive()) {
transaccion.rollback();
}
e.printStackTrace();
} finally {
if (sesion != null) {
sesion.close();
}
}
}
@Override
public void borrarEntidadPorClave(String clave) {
Transaction transaccion = null;
Session sesion = null;
try (Session sesion = GestorSesionesHibernate.getSession();) {
try {
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
@ -141,10 +158,15 @@ public class ContinenteDaoHibernate implements IOperacionesDAOEntidad<Continente
sentenciaBorradoContinente.executeUpdate();
transaccion.commit();
} catch (HibernateException e) {
} catch (Exception e) {
if (transaccion != null && transaccion.isActive()) {
transaccion.rollback();
}
e.printStackTrace();
} finally {
if (sesion != null) {
sesion.close();
}
}
}

View File

@ -2,7 +2,6 @@ package org.lapaloma.aadd.cine.dao.hbnt;
import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.query.MutationQuery;
@ -56,44 +55,62 @@ public class DirectorDaoHibernate implements IOperacionesDAOEntidad<Director, In
@Override
public void crearEntidad(Director entidad) {
Transaction transaccion = null;
// try con recursos "cerrables": Connection, Statement
try (Session sesion = GestorSesionesHibernate.getSession();) {
Session sesion = null;
try {
sesion = GestorSesionesHibernate.getSession();
transaccion = sesion.beginTransaction();
sesion.persist(entidad);
transaccion.commit();
} catch (HibernateException e) {
} catch (Exception e) {
if (transaccion != null && transaccion.isActive()) {
transaccion.rollback();
e.printStackTrace();
}
e.printStackTrace();
} finally {
if (sesion != null) {
sesion.close();
}
}
}
@Override
public void actualizarEntidad(Director entidad) {
Transaction transaccion = null;
Session sesion = null;
// try con recursos "cerrables": Session
try (Session sesion = GestorSesionesHibernate.getSession();) {
try {
sesion = GestorSesionesHibernate.getSession();
transaccion = sesion.beginTransaction();
if (!sesion.contains(entidad))
sesion.merge(entidad);
transaccion.commit();
} catch (Exception e) {
if (transaccion != null && transaccion.isActive()) {
transaccion.rollback();
}
e.printStackTrace();
} finally {
if (sesion != null) {
sesion.close();
}
}
}
@Override
public void borrarEntidadPorClave(Integer clave) {
Transaction transaccion = null;
Session sesion = null;
try (Session sesion = GestorSesionesHibernate.getSession();) {
try {
sesion = GestorSesionesHibernate.getSession();
transaccion = sesion.beginTransaction();
// Borrado de Repartos de películas un director
String sentenciaBorradoRepartosHQL = "DELETE FROM Reparto r WHERE r.pelicula.director.identificador = :identificador";
MutationQuery senteciaBorradoRepartos = sesion.createMutationQuery(sentenciaBorradoRepartosHQL);
@ -114,9 +131,15 @@ public class DirectorDaoHibernate implements IOperacionesDAOEntidad<Director, In
* Pais continente = sesion.find(Pais.class, clave); sesion.remove(continente);
*/
transaccion.commit();
} catch (HibernateException e) {
} catch (Exception e) {
if (transaccion != null && transaccion.isActive()) {
transaccion.rollback();
}
e.printStackTrace();
} finally {
if (sesion != null) {
sesion.close();
}
}
}

View File

@ -2,7 +2,6 @@ package org.lapaloma.aadd.cine.dao.hbnt;
import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.query.MutationQuery;
@ -57,26 +56,33 @@ public class PaisDaoHibernate implements IOperacionesDAOEntidad<Pais, Integer> {
@Override
public void crearEntidad(Pais entidad) {
Transaction transaccion = null;
Session sesion = null;
// try con recursos "cerrables": Connection, Statement
try (Session sesion = GestorSesionesHibernate.getSession();) {
try {
sesion = GestorSesionesHibernate.getSession();
transaccion = sesion.beginTransaction();
sesion.persist(entidad);
transaccion.commit();
} catch (HibernateException e) {
} catch (Exception e) {
if (transaccion != null && transaccion.isActive()) {
transaccion.rollback();
}
e.printStackTrace();
} finally {
if (sesion != null) {
sesion.close();
}
}
}
@Override
public void actualizarEntidad(Pais entidad) {
Transaction transaccion = null;
// try con recursos "cerrables": Session
try (Session sesion = GestorSesionesHibernate.getSession();) {
Session sesion = null;
try {
sesion = GestorSesionesHibernate.getSession();
transaccion = sesion.beginTransaction();
if (!sesion.contains(entidad))
@ -84,17 +90,26 @@ public class PaisDaoHibernate implements IOperacionesDAOEntidad<Pais, Integer> {
transaccion.commit();
}catch (Exception e) {
if (transaccion != null && transaccion.isActive()) {
transaccion.rollback();
}
e.printStackTrace();
} finally {
if (sesion != null) {
sesion.close();
}
}
}
@Override
public void borrarEntidadPorClave(Integer clave) {
Transaction transaccion = null;
Session sesion = null;
try (Session sesion = GestorSesionesHibernate.getSession();) {
try {
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
@ -137,9 +152,15 @@ public class PaisDaoHibernate implements IOperacionesDAOEntidad<Pais, Integer> {
senteciaBorradoPaises.executeUpdate();
transaccion.commit();
} catch (HibernateException e) {
}catch (Exception e) {
if (transaccion != null && transaccion.isActive()) {
transaccion.rollback();
}
e.printStackTrace();
} finally {
if (sesion != null) {
sesion.close();
}
}
}
}

View File

@ -2,7 +2,6 @@ package org.lapaloma.aadd.cine.dao.hbnt;
import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.query.MutationQuery;
@ -56,26 +55,33 @@ public class PeliculaDaoHibernate implements IOperacionesDAOEntidad<Pelicula, In
@Override
public void crearEntidad(Pelicula entidad) {
Transaction transaccion = null;
// try con recursos "cerrables": Connection, Statement
try (Session sesion = GestorSesionesHibernate.getSession();) {
Session sesion = null;
try {
sesion = GestorSesionesHibernate.getSession();
transaccion = sesion.beginTransaction();
sesion.persist(entidad);
transaccion.commit();
} catch (HibernateException e) {
} catch (Exception e) {
if (transaccion != null && transaccion.isActive()) {
transaccion.rollback();
}
e.printStackTrace();
} finally {
if (sesion != null) {
sesion.close();
}
}
}
@Override
public void actualizarEntidad(Pelicula entidad) {
Transaction transaccion = null;
Session sesion = null;
// try con recursos "cerrables": Session
try (Session sesion = GestorSesionesHibernate.getSession();) {
try {
sesion = GestorSesionesHibernate.getSession();
transaccion = sesion.beginTransaction();
if (!sesion.contains(entidad))
@ -83,17 +89,25 @@ public class PeliculaDaoHibernate implements IOperacionesDAOEntidad<Pelicula, In
transaccion.commit();
} catch (Exception e) {
if (transaccion != null && transaccion.isActive()) {
transaccion.rollback();
}
e.printStackTrace();
} finally {
if (sesion != null) {
sesion.close();
}
}
}
@Override
public void borrarEntidadPorClave(Integer clave) {
Transaction transaccion = null;
try (Session sesion = GestorSesionesHibernate.getSession();) {
Session sesion = null;
try {
sesion = GestorSesionesHibernate.getSession();
transaccion = sesion.beginTransaction();
// Borrado de Repartos de una Película
String sentenciaBorradoRepartosHQL = "DELETE FROM Reparto r WHERE r.pelicula.identificador = :identificador";
MutationQuery senteciaBorradoRepartos = sesion.createMutationQuery(sentenciaBorradoRepartosHQL);
@ -107,9 +121,15 @@ public class PeliculaDaoHibernate implements IOperacionesDAOEntidad<Pelicula, In
senteciaBorradoPeliculas.executeUpdate();
transaccion.commit();
} catch (HibernateException e) {
} catch (Exception e) {
if (transaccion != null && transaccion.isActive()) {
transaccion.rollback();
}
e.printStackTrace();
} finally {
if (sesion != null) {
sesion.close();
}
}
}