gestión rollback

This commit is contained in:
Isidoro Nevares Martín 2025-12-18 14:28:35 +01:00
parent d91e4a8675
commit 2ebb82bcf2
5 changed files with 180 additions and 76 deletions

View File

@ -2,7 +2,6 @@ package org.lapaloma.aadd.cine.dao.hbnt;
import java.util.List; import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Session; import org.hibernate.Session;
import org.hibernate.Transaction; import org.hibernate.Transaction;
import org.hibernate.query.MutationQuery; import org.hibernate.query.MutationQuery;
@ -56,43 +55,59 @@ public class ActorDaoHibernate implements IActorDAO {
@Override @Override
public void crearEntidad(Actor entidad) { public void crearEntidad(Actor entidad) {
Transaction transaccion = null; Transaction transaccion = null;
Session sesion = null;
// try con recursos "cerrables": Connection, Statement
try (Session sesion = GestorSesionesHibernate.getSession();) { try {
sesion = GestorSesionesHibernate.getSession();
transaccion = sesion.beginTransaction(); transaccion = sesion.beginTransaction();
sesion.persist(entidad); sesion.persist(entidad);
transaccion.commit(); transaccion.commit();
} catch (HibernateException e) { } catch (Exception e) {
transaccion.rollback(); if (transaccion != null && transaccion.isActive()) {
transaccion.rollback();
}
e.printStackTrace(); e.printStackTrace();
} finally {
if (sesion != null) {
sesion.close();
}
} }
} }
@Override @Override
public void actualizarEntidad(Actor entidad) { public void actualizarEntidad(Actor entidad) {
Transaction transaccion = null; Transaction transaccion = null;
Session sesion = null;
// try con recursos "cerrables": Session
try (Session sesion = GestorSesionesHibernate.getSession();) { try {
sesion = GestorSesionesHibernate.getSession();
transaccion = sesion.beginTransaction(); transaccion = sesion.beginTransaction();
if (!sesion.contains(entidad)) if (!sesion.contains(entidad))
sesion.merge(entidad); sesion.merge(entidad);
transaccion.commit(); transaccion.commit();
} catch (Exception e) { } catch (Exception e) {
transaccion.rollback(); if (transaccion != null && transaccion.isActive()) {
transaccion.rollback();
}
e.printStackTrace(); e.printStackTrace();
} finally {
if (sesion != null) {
sesion.close();
}
} }
} }
@Override @Override
public void borrarEntidadPorClave(Integer clave) { public void borrarEntidadPorClave(Integer clave) {
Transaction transaccion = null; Transaction transaccion = null;
Session sesion = null;
try (Session sesion = GestorSesionesHibernate.getSession();) {
try {
sesion = GestorSesionesHibernate.getSession();
transaccion = sesion.beginTransaction(); transaccion = sesion.beginTransaction();
// Borrado de Actor // Borrado de Actor
@ -100,9 +115,15 @@ public class ActorDaoHibernate implements IActorDAO {
sesion.remove(actor); sesion.remove(actor);
transaccion.commit(); transaccion.commit();
} catch (HibernateException e) { } catch (Exception e) {
transaccion.rollback(); if (transaccion != null && transaccion.isActive()) {
transaccion.rollback();
}
e.printStackTrace(); 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 java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Session; import org.hibernate.Session;
import org.hibernate.Transaction; import org.hibernate.Transaction;
import org.hibernate.query.MutationQuery; import org.hibernate.query.MutationQuery;
@ -56,53 +55,74 @@ public class ContinenteDaoHibernate implements IContinenteDAO {
@Override @Override
public void crearEntidad(Continente entidad) { public void crearEntidad(Continente entidad) {
Transaction transaccion = null; Transaction transaccion = null;
Session sesion = null;
// try con recursos "cerrables": Connection, Statement
try (Session sesion = GestorSesionesHibernate.getSession();) { try {
sesion = GestorSesionesHibernate.getSession();
transaccion = sesion.beginTransaction(); transaccion = sesion.beginTransaction();
sesion.persist(entidad); sesion.persist(entidad);
transaccion.commit(); transaccion.commit();
} catch (HibernateException e) { } catch (Exception e) {
transaccion.rollback(); if (transaccion != null && transaccion.isActive()) {
transaccion.rollback();
}
e.printStackTrace(); e.printStackTrace();
} finally {
if (sesion != null) {
sesion.close();
}
} }
} }
@Override @Override
public void actualizarEntidad(Continente entidad) { public void actualizarEntidad(Continente entidad) {
Transaction transaccion = null; Transaction transaccion = null;
Session sesion = null;
// try con recursos "cerrables": Session
try (Session sesion = GestorSesionesHibernate.getSession();) { try {
sesion = GestorSesionesHibernate.getSession();
transaccion = sesion.beginTransaction(); transaccion = sesion.beginTransaction();
if (!sesion.contains(entidad)) if (!sesion.contains(entidad))
sesion.merge(entidad); sesion.merge(entidad);
transaccion.commit(); transaccion.commit();
} catch (Exception e) { } catch (Exception e) {
transaccion.rollback(); if (transaccion != null && transaccion.isActive()) {
transaccion.rollback();
}
e.printStackTrace(); e.printStackTrace();
} finally {
if (sesion != null) {
sesion.close();
}
} }
} }
@Override @Override
public void borrarEntidadPorClave(String clave) { public void borrarEntidadPorClave(String clave) {
Transaction transaccion = null; Transaction transaccion = null;
Session sesion = null;
try (Session sesion = GestorSesionesHibernate.getSession();) {
try {
sesion = GestorSesionesHibernate.getSession();
transaccion = sesion.beginTransaction(); transaccion = sesion.beginTransaction();
Continente continente = sesion.find(Continente.class, clave); Continente continente = sesion.find(Continente.class, clave);
sesion.remove(continente); sesion.remove(continente);
transaccion.commit(); transaccion.commit();
} catch (HibernateException e) { } catch (Exception e) {
transaccion.rollback(); if (transaccion != null && transaccion.isActive()) {
transaccion.rollback();
}
e.printStackTrace(); 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 java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Session; import org.hibernate.Session;
import org.hibernate.Transaction; import org.hibernate.Transaction;
import org.hibernate.query.MutationQuery; import org.hibernate.query.MutationQuery;
@ -56,52 +55,74 @@ public class DirectorDaoHibernate implements IDirectorDAO {
@Override @Override
public void crearEntidad(Director entidad) { public void crearEntidad(Director entidad) {
Transaction transaccion = null; Transaction transaccion = null;
Session sesion = null;
// try con recursos "cerrables": Connection, Statement
try (Session sesion = GestorSesionesHibernate.getSession();) { try {
sesion = GestorSesionesHibernate.getSession();
transaccion = sesion.beginTransaction(); transaccion = sesion.beginTransaction();
sesion.persist(entidad); sesion.persist(entidad);
transaccion.commit(); transaccion.commit();
} catch (HibernateException e) { } catch (Exception e) {
transaccion.rollback(); if (transaccion != null && transaccion.isActive()) {
transaccion.rollback();
}
e.printStackTrace(); e.printStackTrace();
} finally {
if (sesion != null) {
sesion.close();
}
} }
} }
@Override @Override
public void actualizarEntidad(Director entidad) { public void actualizarEntidad(Director entidad) {
Transaction transaccion = null; Transaction transaccion = null;
Session sesion = null;
// try con recursos "cerrables": Session
try (Session sesion = GestorSesionesHibernate.getSession();) { try {
sesion = GestorSesionesHibernate.getSession();
transaccion = sesion.beginTransaction(); transaccion = sesion.beginTransaction();
if (!sesion.contains(entidad)) if (!sesion.contains(entidad))
sesion.merge(entidad); sesion.merge(entidad);
transaccion.commit(); transaccion.commit();
} catch (Exception e) { } catch (Exception e) {
transaccion.rollback(); if (transaccion != null && transaccion.isActive()) {
transaccion.rollback();
}
e.printStackTrace(); e.printStackTrace();
} finally {
if (sesion != null) {
sesion.close();
}
} }
} }
@Override @Override
public void borrarEntidadPorClave(Integer clave) { public void borrarEntidadPorClave(Integer clave) {
Transaction transaccion = null; Transaction transaccion = null;
Session sesion = null;
try (Session sesion = GestorSesionesHibernate.getSession();) {
try {
sesion = GestorSesionesHibernate.getSession();
transaccion = sesion.beginTransaction(); transaccion = sesion.beginTransaction();
Director director = sesion.find(Director.class, clave); Director director = sesion.find(Director.class, clave);
sesion.remove(director); sesion.remove(director);
transaccion.commit(); transaccion.commit();
} catch (HibernateException e) { } catch (Exception e) {
transaccion.rollback(); if (transaccion != null && transaccion.isActive()) {
transaccion.rollback();
}
e.printStackTrace(); 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 java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Session; import org.hibernate.Session;
import org.hibernate.Transaction; import org.hibernate.Transaction;
import org.hibernate.query.MutationQuery; import org.hibernate.query.MutationQuery;
@ -57,52 +56,74 @@ public class PaisDaoHibernate implements IPaisDAO {
@Override @Override
public void crearEntidad(Pais entidad) { public void crearEntidad(Pais entidad) {
Transaction transaccion = null; Transaction transaccion = null;
Session sesion = null;
// try con recursos "cerrables": Connection, Statement
try (Session sesion = GestorSesionesHibernate.getSession();) { try {
sesion = GestorSesionesHibernate.getSession();
transaccion = sesion.beginTransaction(); transaccion = sesion.beginTransaction();
sesion.persist(entidad); sesion.persist(entidad);
transaccion.commit(); transaccion.commit();
} catch (HibernateException e) { } catch (Exception e) {
transaccion.rollback(); if (transaccion != null && transaccion.isActive()) {
transaccion.rollback();
}
e.printStackTrace(); e.printStackTrace();
} finally {
if (sesion != null) {
sesion.close();
}
} }
} }
@Override @Override
public void actualizarEntidad(Pais entidad) { public void actualizarEntidad(Pais entidad) {
Transaction transaccion = null; Transaction transaccion = null;
Session sesion = null;
// try con recursos "cerrables": Session
try (Session sesion = GestorSesionesHibernate.getSession();) { try {
sesion = GestorSesionesHibernate.getSession();
transaccion = sesion.beginTransaction(); transaccion = sesion.beginTransaction();
if (!sesion.contains(entidad)) if (!sesion.contains(entidad))
sesion.merge(entidad); sesion.merge(entidad);
transaccion.commit(); transaccion.commit();
} catch (Exception e) { } catch (Exception e) {
transaccion.rollback(); if (transaccion != null && transaccion.isActive()) {
transaccion.rollback();
}
e.printStackTrace(); e.printStackTrace();
} finally {
if (sesion != null) {
sesion.close();
}
} }
} }
@Override @Override
public void borrarEntidadPorClave(Integer clave) { public void borrarEntidadPorClave(Integer clave) {
Transaction transaccion = null; Transaction transaccion = null;
Session sesion = null;
try (Session sesion = GestorSesionesHibernate.getSession();) {
try {
sesion = GestorSesionesHibernate.getSession();
transaccion = sesion.beginTransaction(); transaccion = sesion.beginTransaction();
Pais pais = sesion.find(Pais.class, clave); Pais pais = sesion.find(Pais.class, clave);
sesion.remove(pais); sesion.remove(pais);
transaccion.commit(); transaccion.commit();
} catch (HibernateException e) { } catch (Exception e) {
transaccion.rollback(); if (transaccion != null && transaccion.isActive()) {
transaccion.rollback();
}
e.printStackTrace(); 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 java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Session; import org.hibernate.Session;
import org.hibernate.Transaction; import org.hibernate.Transaction;
import org.hibernate.query.MutationQuery; import org.hibernate.query.MutationQuery;
@ -57,26 +56,34 @@ public class PeliculaDaoHibernate implements IPeliculaDAO {
@Override @Override
public void crearEntidad(Pelicula entidad) { public void crearEntidad(Pelicula entidad) {
Transaction transaccion = null; Transaction transaccion = null;
Session sesion = null;
// try con recursos "cerrables": Connection, Statement
try (Session sesion = GestorSesionesHibernate.getSession();) { try {
sesion = GestorSesionesHibernate.getSession();
transaccion = sesion.beginTransaction(); transaccion = sesion.beginTransaction();
sesion.persist(entidad); sesion.persist(entidad);
transaccion.commit(); transaccion.commit();
} catch (HibernateException e) { } catch (Exception e) {
transaccion.rollback(); if (transaccion != null && transaccion.isActive()) {
transaccion.rollback();
}
e.printStackTrace(); e.printStackTrace();
} finally {
if (sesion != null) {
sesion.close();
}
} }
} }
@Override @Override
public void actualizarEntidad(Pelicula entidad) { public void actualizarEntidad(Pelicula entidad) {
Transaction transaccion = null; Transaction transaccion = null;
Session sesion = null;
// try con recursos "cerrables": Session
try (Session sesion = GestorSesionesHibernate.getSession();) { try {
sesion = GestorSesionesHibernate.getSession();
transaccion = sesion.beginTransaction(); transaccion = sesion.beginTransaction();
if (!sesion.contains(entidad)) if (!sesion.contains(entidad))
@ -84,16 +91,24 @@ public class PeliculaDaoHibernate implements IPeliculaDAO {
transaccion.commit(); transaccion.commit();
} catch (Exception e) { } catch (Exception e) {
transaccion.rollback(); if (transaccion != null && transaccion.isActive()) {
transaccion.rollback();
}
e.printStackTrace(); e.printStackTrace();
} finally {
if (sesion != null) {
sesion.close();
}
} }
} }
@Override @Override
public void borrarEntidadPorClave(Integer clave) { public void borrarEntidadPorClave(Integer clave) {
Transaction transaccion = null; Transaction transaccion = null;
Session sesion = null;
try (Session sesion = GestorSesionesHibernate.getSession();) {
try {
sesion = GestorSesionesHibernate.getSession();
transaccion = sesion.beginTransaction(); transaccion = sesion.beginTransaction();
// Borrado de Actor // Borrado de Actor
@ -101,9 +116,15 @@ public class PeliculaDaoHibernate implements IPeliculaDAO {
sesion.remove(actor); sesion.remove(actor);
transaccion.commit(); transaccion.commit();
} catch (HibernateException e) { } catch (Exception e) {
transaccion.rollback(); if (transaccion != null && transaccion.isActive()) {
transaccion.rollback();
}
e.printStackTrace(); e.printStackTrace();
} finally {
if (sesion != null) {
sesion.close();
}
} }
} }