diff --git a/src/main/java/xyz/danielcortes/framework/BaseRepository.java b/src/main/java/xyz/danielcortes/framework/BaseRepository.java new file mode 100644 index 0000000..de3c765 --- /dev/null +++ b/src/main/java/xyz/danielcortes/framework/BaseRepository.java @@ -0,0 +1,52 @@ +package xyz.danielcortes.framework; + +import javax.persistence.EntityManager; +import javax.persistence.PersistenceException; + +public abstract class BaseRepository { + + protected EntityManager em; + + public BaseRepository() { + this.em = PersistenceManager.getEntityManager(); + } + + public void save(E entity) { + em.getTransaction().begin(); + + try { + em.persist(entity); + } catch (PersistenceException e) { + e.printStackTrace(); + em.getTransaction().rollback(); + } + + em.getTransaction().commit(); + } + + public void update(E entity) { + em.getTransaction().begin(); + + try { + em.merge(entity); + } catch (PersistenceException e) { + e.printStackTrace(); + em.getTransaction().rollback(); + } + + em.getTransaction().commit(); + } + + public void delete(E entity) { + em.getTransaction().begin(); + + try { + em.remove(entity); + } catch (PersistenceException e) { + e.printStackTrace(); + em.getTransaction().rollback(); + } + + em.getTransaction().commit(); + } +} diff --git a/src/main/java/xyz/danielcortes/repository/AutorRepository.java b/src/main/java/xyz/danielcortes/repository/AutorRepository.java index 962c128..ec41f5a 100644 --- a/src/main/java/xyz/danielcortes/repository/AutorRepository.java +++ b/src/main/java/xyz/danielcortes/repository/AutorRepository.java @@ -1,22 +1,14 @@ package xyz.danielcortes.repository; import java.util.List; -import javax.persistence.EntityManager; -import javax.persistence.PersistenceException; import javax.persistence.TypedQuery; import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.Root; -import xyz.danielcortes.framework.PersistenceManager; +import xyz.danielcortes.framework.BaseRepository; import xyz.danielcortes.models.Autor; -public class AutorRepository { - - private EntityManager em; - - public AutorRepository() { - this.em = PersistenceManager.getEntityManager(); - } +public class AutorRepository extends BaseRepository { public List getAll() { TypedQuery query = em.createQuery("SELECT a FROM Autor a", Autor.class); @@ -36,41 +28,4 @@ public class AutorRepository { ); return em.createQuery(query).getResultList(); } - - public void save(Autor autor) { - em.getTransaction().begin(); - - try { - em.persist(autor); - } catch (PersistenceException e) { - e.printStackTrace(); - } - - em.getTransaction().commit(); - } - - public void update(Autor autor) { - em.getTransaction().begin(); - - try { - em.merge(autor); - } catch (PersistenceException e) { - e.printStackTrace(); - } - - em.getTransaction().commit(); - } - - public void delete(Autor autor) { - em.getTransaction().begin(); - - try { - em.remove(autor); - } catch (PersistenceException e) { - e.printStackTrace(); - } - - em.getTransaction().commit(); - } - } diff --git a/src/main/java/xyz/danielcortes/repository/CategoriaRepository.java b/src/main/java/xyz/danielcortes/repository/CategoriaRepository.java index f1b063a..c0855f1 100644 --- a/src/main/java/xyz/danielcortes/repository/CategoriaRepository.java +++ b/src/main/java/xyz/danielcortes/repository/CategoriaRepository.java @@ -1,22 +1,14 @@ package xyz.danielcortes.repository; import java.util.List; -import javax.persistence.EntityManager; -import javax.persistence.PersistenceException; import javax.persistence.TypedQuery; import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.Root; -import xyz.danielcortes.framework.PersistenceManager; +import xyz.danielcortes.framework.BaseRepository; import xyz.danielcortes.models.Categoria; -public class CategoriaRepository { - - private EntityManager em; - - public CategoriaRepository() { - this.em = PersistenceManager.getEntityManager(); - } +public class CategoriaRepository extends BaseRepository { public List getAll() { TypedQuery query = em.createQuery("SELECT c from Categoria c", Categoria.class); @@ -32,41 +24,4 @@ public class CategoriaRepository { ); return em.createQuery(query).getResultList(); } - - public void save(Categoria categoria) { - em.getTransaction().begin(); - - try { - em.persist(categoria); - } catch ( - PersistenceException e) { - e.printStackTrace(); - } - - em.getTransaction().commit(); - } - - public void update(Categoria categoria) { - em.getTransaction().begin(); - - try { - em.merge(categoria); - } catch (PersistenceException e) { - e.printStackTrace(); - } - - em.getTransaction().commit(); - } - - public void delete(Categoria categoria) { - em.getTransaction().begin(); - - try { - em.remove(categoria); - } catch (PersistenceException e) { - e.printStackTrace(); - } - - em.getTransaction().commit(); - } } diff --git a/src/main/java/xyz/danielcortes/repository/EditorialRepository.java b/src/main/java/xyz/danielcortes/repository/EditorialRepository.java index 02dd4c7..f72448f 100644 --- a/src/main/java/xyz/danielcortes/repository/EditorialRepository.java +++ b/src/main/java/xyz/danielcortes/repository/EditorialRepository.java @@ -1,22 +1,14 @@ package xyz.danielcortes.repository; import java.util.List; -import javax.persistence.EntityManager; -import javax.persistence.PersistenceException; import javax.persistence.TypedQuery; import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.Root; -import xyz.danielcortes.framework.PersistenceManager; +import xyz.danielcortes.framework.BaseRepository; import xyz.danielcortes.models.Editorial; -public class EditorialRepository { - - private EntityManager em; - - public EditorialRepository() { - this.em = PersistenceManager.getEntityManager(); - } +public class EditorialRepository extends BaseRepository { public List getAll() { TypedQuery query = em.createQuery("SELECT e FROM Editorial e", Editorial.class); @@ -32,42 +24,4 @@ public class EditorialRepository { ); return em.createQuery(query).getResultList(); } - - public void save(Editorial editorial) { - em.getTransaction().begin(); - - try { - em.persist(editorial); - } catch ( - PersistenceException e) { - e.printStackTrace(); - } - - em.getTransaction().commit(); - } - - public void update(Editorial editorial) { - em.getTransaction().begin(); - - try{ - em.merge(editorial); - - } catch (PersistenceException e) { - e.printStackTrace(); - } - - em.getTransaction().commit(); - } - - public void delete(Editorial editorial) { - em.getTransaction().begin(); - - try{ - em.remove(editorial); - } catch (PersistenceException e) { - e.printStackTrace(); - } - - em.getTransaction().commit(); - } } diff --git a/src/main/java/xyz/danielcortes/repository/EjemplarRepository.java b/src/main/java/xyz/danielcortes/repository/EjemplarRepository.java index f9c2337..9e7e6d7 100644 --- a/src/main/java/xyz/danielcortes/repository/EjemplarRepository.java +++ b/src/main/java/xyz/danielcortes/repository/EjemplarRepository.java @@ -1,23 +1,15 @@ package xyz.danielcortes.repository; import java.util.List; -import javax.persistence.EntityManager; -import javax.persistence.PersistenceException; import javax.persistence.Query; import javax.persistence.TypedQuery; import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.Root; -import xyz.danielcortes.framework.PersistenceManager; +import xyz.danielcortes.framework.BaseRepository; import xyz.danielcortes.models.Ejemplar; -public class EjemplarRepository { - - private EntityManager em; - - public EjemplarRepository() { - this.em = PersistenceManager.getEntityManager(); - } +public class EjemplarRepository extends BaseRepository { public List getAll() { TypedQuery query = em.createQuery("SELECT e FROM Ejemplar e", Ejemplar.class); @@ -37,36 +29,6 @@ public class EjemplarRepository { return em.createQuery(query).getResultList(); } - public void save(Ejemplar ejemplar) { - em.getTransaction().begin(); - try { - em.persist(ejemplar); - } catch (PersistenceException e) { - e.printStackTrace(); - } - em.getTransaction().commit(); - } - - public void update(Ejemplar ejemplar) { - em.getTransaction().begin(); - try { - em.merge(ejemplar); - } catch (PersistenceException e) { - e.printStackTrace(); - } - em.getTransaction().commit(); - } - - public void delete(Ejemplar ejemplar) { - em.getTransaction().begin(); - try { - em.remove(ejemplar); - } catch (PersistenceException e) { - e.printStackTrace(); - } - em.getTransaction().commit(); - } - public boolean exists(String serie, Integer libro_id) { Query query = em.createQuery("SELECT count(e) FROM Ejemplar e WHERE serie = :serie and libro.id = :libro_id"); query.setParameter("serie", serie); diff --git a/src/main/java/xyz/danielcortes/repository/EstadoRepository.java b/src/main/java/xyz/danielcortes/repository/EstadoRepository.java index 4bd31f8..fc87b75 100644 --- a/src/main/java/xyz/danielcortes/repository/EstadoRepository.java +++ b/src/main/java/xyz/danielcortes/repository/EstadoRepository.java @@ -1,19 +1,11 @@ package xyz.danielcortes.repository; import java.util.List; -import javax.persistence.EntityManager; -import javax.persistence.PersistenceException; import javax.persistence.TypedQuery; -import xyz.danielcortes.framework.PersistenceManager; +import xyz.danielcortes.framework.BaseRepository; import xyz.danielcortes.models.Estado; -public class EstadoRepository { - - private EntityManager em; - - public EstadoRepository() { - this.em = PersistenceManager.getEntityManager(); - } +public class EstadoRepository extends BaseRepository { public List getAll() { TypedQuery query = em.createQuery("SELECT e FROM Estado e", Estado.class); @@ -25,42 +17,4 @@ public class EstadoRepository { query.setParameter("nombre", nombre); return query.getSingleResult(); } - - public void save(Estado estado) { - em.getTransaction().begin(); - - try { - em.persist(estado); - } catch (PersistenceException e) { - e.printStackTrace(); - } - - em.getTransaction().commit(); - } - - public void update(Estado estado) { - em.getTransaction().begin(); - - try { - em.merge(estado); - } catch (PersistenceException e) { - e.printStackTrace(); - } - - em.getTransaction().commit(); - } - - public void delete(Estado estado) { - em.getTransaction().begin(); - - try { - em.remove(estado); - - } catch (PersistenceException e) { - e.printStackTrace(); - } - - em.getTransaction().commit(); - } - } diff --git a/src/main/java/xyz/danielcortes/repository/IdiomaRepository.java b/src/main/java/xyz/danielcortes/repository/IdiomaRepository.java index 0fafe2b..bf31b7c 100644 --- a/src/main/java/xyz/danielcortes/repository/IdiomaRepository.java +++ b/src/main/java/xyz/danielcortes/repository/IdiomaRepository.java @@ -1,22 +1,14 @@ package xyz.danielcortes.repository; import java.util.List; -import javax.persistence.EntityManager; -import javax.persistence.PersistenceException; import javax.persistence.TypedQuery; import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.Root; -import xyz.danielcortes.framework.PersistenceManager; +import xyz.danielcortes.framework.BaseRepository; import xyz.danielcortes.models.Idioma; -public class IdiomaRepository { - - private EntityManager em; - - public IdiomaRepository() { - this.em = PersistenceManager.getEntityManager(); - } +public class IdiomaRepository extends BaseRepository { public List getAll() { TypedQuery query = em.createQuery("SELECT i FROM Idioma i", Idioma.class); @@ -34,41 +26,4 @@ public class IdiomaRepository { ); return em.createQuery(query).getResultList(); } - - public void save(Idioma idioma) { - em.getTransaction().begin(); - - try { - em.persist(idioma); - } catch (PersistenceException e) { - e.printStackTrace(); - } - - em.getTransaction().commit(); - } - - public void update(Idioma idioma) { - em.getTransaction().begin(); - - try { - em.merge(idioma); - } catch (PersistenceException e) { - e.printStackTrace(); - } - - em.getTransaction().commit(); - } - - public void delete(Idioma idioma) { - em.getTransaction().begin(); - - try { - em.remove(idioma); - } catch (PersistenceException e) { - e.printStackTrace(); - } - - em.getTransaction().commit(); - } - } diff --git a/src/main/java/xyz/danielcortes/repository/LibroRepository.java b/src/main/java/xyz/danielcortes/repository/LibroRepository.java index b8a5a34..67e3e17 100644 --- a/src/main/java/xyz/danielcortes/repository/LibroRepository.java +++ b/src/main/java/xyz/danielcortes/repository/LibroRepository.java @@ -1,22 +1,14 @@ package xyz.danielcortes.repository; import java.util.List; -import javax.persistence.EntityManager; -import javax.persistence.PersistenceException; import javax.persistence.TypedQuery; import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.Root; -import xyz.danielcortes.framework.PersistenceManager; +import xyz.danielcortes.framework.BaseRepository; import xyz.danielcortes.models.Libro; -public class LibroRepository { - - private EntityManager em; - - public LibroRepository() { - this.em = PersistenceManager.getEntityManager(); - } +public class LibroRepository extends BaseRepository { public List getAll() { TypedQuery query = em.createQuery("SELECT l FROM Libro l", Libro.class); @@ -36,42 +28,4 @@ public class LibroRepository { ); return em.createQuery(query).getResultList(); } - - public void save(Libro libro) { - em.getTransaction().begin(); - - try { - em.persist(libro); - } catch ( - PersistenceException e) { - e.printStackTrace(); - } - - em.getTransaction().commit(); - } - - public void update(Libro libro) { - em.getTransaction().begin(); - - try { - em.merge(libro); - } catch (PersistenceException e) { - e.printStackTrace(); - } - - em.getTransaction().commit(); - } - - public void delete(Libro libro) { - em.getTransaction().begin(); - - try { - em.remove(libro); - } catch (PersistenceException e) { - e.printStackTrace(); - } - - em.getTransaction().commit(); - } - }