diff --git a/src/main/java/org/lapaloma/aadd/cine/dao/hbnt/ActorDaoHibernate.java b/src/main/java/org/lapaloma/aadd/cine/dao/hbnt/ActorDaoHibernate.java index 407a540..e4d99f5 100644 --- a/src/main/java/org/lapaloma/aadd/cine/dao/hbnt/ActorDaoHibernate.java +++ b/src/main/java/org/lapaloma/aadd/cine/dao/hbnt/ActorDaoHibernate.java @@ -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 @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) { - transaccion.rollback(); + } 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 transaccion.commit(); } catch (Exception e) { - transaccion.rollback(); + 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 senteciaBorradoActor.executeUpdate(); transaccion.commit(); - } catch (HibernateException e) { - transaccion.rollback(); + } catch (Exception e) { + if (transaccion != null && transaccion.isActive()) { + transaccion.rollback(); + } e.printStackTrace(); + } finally { + if (sesion != null) { + sesion.close(); + } } } diff --git a/src/main/java/org/lapaloma/aadd/cine/dao/hbnt/ContinenteDaoHibernate.java b/src/main/java/org/lapaloma/aadd/cine/dao/hbnt/ContinenteDaoHibernate.java index eef80a5..ea39090 100644 --- a/src/main/java/org/lapaloma/aadd/cine/dao/hbnt/ContinenteDaoHibernate.java +++ b/src/main/java/org/lapaloma/aadd/cine/dao/hbnt/ContinenteDaoHibernate.java @@ -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 { @Override public void crearEntidad(Pais 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) { - transaccion.rollback(); + } 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)) sesion.merge(entidad); transaccion.commit(); - } catch (Exception e) { - transaccion.rollback(); + }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 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 { senteciaBorradoPaises.executeUpdate(); transaccion.commit(); - } catch (HibernateException e) { - transaccion.rollback(); + }catch (Exception e) { + if (transaccion != null && transaccion.isActive()) { + transaccion.rollback(); + } e.printStackTrace(); + } finally { + if (sesion != null) { + sesion.close(); + } } } } diff --git a/src/main/java/org/lapaloma/aadd/cine/dao/hbnt/PeliculaDaoHibernate.java b/src/main/java/org/lapaloma/aadd/cine/dao/hbnt/PeliculaDaoHibernate.java index f8a1345..dc266e7 100644 --- a/src/main/java/org/lapaloma/aadd/cine/dao/hbnt/PeliculaDaoHibernate.java +++ b/src/main/java/org/lapaloma/aadd/cine/dao/hbnt/PeliculaDaoHibernate.java @@ -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