Cree un BaseRepository

Basicamente contiene los metodos para guardar, editar y eliminar que se
repiten a travez de todos los modelos
This commit is contained in:
Daniel Cortés
2019-05-25 18:26:00 -04:00
parent 2cb89e53f7
commit 730067f48d
8 changed files with 66 additions and 325 deletions

View File

@@ -0,0 +1,52 @@
package xyz.danielcortes.framework;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceException;
public abstract class BaseRepository<E> {
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();
}
}

View File

@@ -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<Autor> {
public List<Autor> getAll() {
TypedQuery<Autor> 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();
}
}

View File

@@ -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<Categoria> {
public List<Categoria> getAll() {
TypedQuery<Categoria> 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();
}
}

View File

@@ -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<Editorial> {
public List<Editorial> getAll() {
TypedQuery<Editorial> 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();
}
}

View File

@@ -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<Ejemplar> {
public List<Ejemplar> getAll() {
TypedQuery<Ejemplar> 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);

View File

@@ -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<Estado> {
public List<Estado> getAll() {
TypedQuery<Estado> 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();
}
}

View File

@@ -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<Idioma> {
public List<Idioma> getAll() {
TypedQuery<Idioma> 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();
}
}

View File

@@ -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<Libro> {
public List<Libro> getAll() {
TypedQuery<Libro> 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();
}
}