From ffe8d1a337d1db31402b0c71cb97d08fee038ec9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Cort=C3=A9s?= Date: Wed, 8 May 2019 09:16:49 -0400 Subject: [PATCH] Agregada busqueda y correccion de errores --- .../repository/CategoriaRepository.java | 41 ++++++++++++++-- .../repository/EditorialRepository.java | 38 ++++++++++++++- .../repository/EstadoRepository.java | 28 +++++++++-- .../repository/IdiomaRepository.java | 38 +++++++++++++-- .../repository/LibroRepository.java | 47 ++++++++++++++++--- 5 files changed, 175 insertions(+), 17 deletions(-) diff --git a/src/main/java/xyz/danielcortes/repository/CategoriaRepository.java b/src/main/java/xyz/danielcortes/repository/CategoriaRepository.java index 41b6a0d..f1b063a 100644 --- a/src/main/java/xyz/danielcortes/repository/CategoriaRepository.java +++ b/src/main/java/xyz/danielcortes/repository/CategoriaRepository.java @@ -2,11 +2,16 @@ 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.models.Categoria; public class CategoriaRepository { + private EntityManager em; public CategoriaRepository() { @@ -18,20 +23,50 @@ public class CategoriaRepository { return query.getResultList(); } + public List search(String term) { + CriteriaBuilder cb = em.getCriteriaBuilder(); + CriteriaQuery query = cb.createQuery(Categoria.class); + Root r = query.from(Categoria.class); + query.where( + cb.like(cb.lower(r.get("nombre")), "%" + term.toLowerCase() + "%") + ); + return em.createQuery(query).getResultList(); + } + public void save(Categoria categoria) { em.getTransaction().begin(); - em.persist(categoria); + + try { + em.persist(categoria); + } catch ( + PersistenceException e) { + e.printStackTrace(); + } + em.getTransaction().commit(); } public void update(Categoria categoria) { em.getTransaction().begin(); - em.merge(categoria); + + try { + em.merge(categoria); + } catch (PersistenceException e) { + e.printStackTrace(); + } + em.getTransaction().commit(); } + public void delete(Categoria categoria) { em.getTransaction().begin(); - em.remove(categoria); + + 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 3891e5a..02dd4c7 100644 --- a/src/main/java/xyz/danielcortes/repository/EditorialRepository.java +++ b/src/main/java/xyz/danielcortes/repository/EditorialRepository.java @@ -2,11 +2,16 @@ 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.models.Editorial; public class EditorialRepository { + private EntityManager em; public EditorialRepository() { @@ -18,20 +23,51 @@ public class EditorialRepository { return query.getResultList(); } + public List search(String term) { + CriteriaBuilder cb = em.getCriteriaBuilder(); + CriteriaQuery query = cb.createQuery(Editorial.class); + Root r = query.from(Editorial.class); + query.where( + cb.like(cb.lower(r.get("nombre")), "%" + term.toLowerCase() + "%") + ); + return em.createQuery(query).getResultList(); + } + public void save(Editorial editorial) { em.getTransaction().begin(); - em.persist(editorial); + + 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/EstadoRepository.java b/src/main/java/xyz/danielcortes/repository/EstadoRepository.java index 335da54..4bd31f8 100644 --- a/src/main/java/xyz/danielcortes/repository/EstadoRepository.java +++ b/src/main/java/xyz/danielcortes/repository/EstadoRepository.java @@ -2,11 +2,13 @@ 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.models.Estado; public class EstadoRepository { + private EntityManager em; public EstadoRepository() { @@ -26,18 +28,38 @@ public class EstadoRepository { public void save(Estado estado) { em.getTransaction().begin(); - em.persist(estado); + + try { + em.persist(estado); + } catch (PersistenceException e) { + e.printStackTrace(); + } + em.getTransaction().commit(); } public void update(Estado estado) { em.getTransaction().begin(); - em.merge(estado); + + try { + em.merge(estado); + } catch (PersistenceException e) { + e.printStackTrace(); + } + em.getTransaction().commit(); } + public void delete(Estado estado) { em.getTransaction().begin(); - em.remove(estado); + + 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 a433a8e..0fafe2b 100644 --- a/src/main/java/xyz/danielcortes/repository/IdiomaRepository.java +++ b/src/main/java/xyz/danielcortes/repository/IdiomaRepository.java @@ -2,7 +2,11 @@ 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.models.Idioma; @@ -21,21 +25,49 @@ public class IdiomaRepository { return idiomas; } + public List search(String term) { + CriteriaBuilder cb = em.getCriteriaBuilder(); + CriteriaQuery query = cb.createQuery(Idioma.class); + Root r = query.from(Idioma.class); + query.where( + cb.like(cb.lower(r.get("nombre")), "%" + term.toLowerCase() + "%") + ); + return em.createQuery(query).getResultList(); + } + public void save(Idioma idioma) { em.getTransaction().begin(); - em.persist(idioma); + + try { + em.persist(idioma); + } catch (PersistenceException e) { + e.printStackTrace(); + } + em.getTransaction().commit(); } public void update(Idioma idioma) { em.getTransaction().begin(); - em.merge(idioma); + + try { + em.merge(idioma); + } catch (PersistenceException e) { + e.printStackTrace(); + } + em.getTransaction().commit(); } public void delete(Idioma idioma) { em.getTransaction().begin(); - em.remove(idioma); + + 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 c75251f..224005d 100644 --- a/src/main/java/xyz/danielcortes/repository/LibroRepository.java +++ b/src/main/java/xyz/danielcortes/repository/LibroRepository.java @@ -2,8 +2,12 @@ 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.models.Libro; @@ -20,28 +24,57 @@ public class LibroRepository { return query.getResultList(); } + public List search(String term) { + CriteriaBuilder cb = em.getCriteriaBuilder(); + CriteriaQuery query = cb.createQuery(Libro.class); + Root r = query.from(Libro.class); + query.where( + cb.like(cb.lower(r.get("nombre")), "%" + term.toLowerCase() + "%") + ); + return em.createQuery(query).getResultList(); + } + public void save(Libro libro) { em.getTransaction().begin(); - em.persist(libro); + + try { + em.persist(libro); + } catch ( + PersistenceException e) { + e.printStackTrace(); + } + em.getTransaction().commit(); } public void update(Libro libro) { em.getTransaction().begin(); - em.merge(libro); + + try { + em.merge(libro); + } catch (PersistenceException e) { + e.printStackTrace(); + } + em.getTransaction().commit(); } public void delete(Libro libro) { em.getTransaction().begin(); - em.remove(libro); + + try { + em.remove(libro); + } catch (PersistenceException e) { + e.printStackTrace(); + } + em.getTransaction().commit(); } public boolean exists(Integer serie, Integer id) { - Query query = em.createQuery("SELECT count(l) FROM Libro l WHERE serie = :serie and id != :id"); - query.setParameter("serie", serie); - query.setParameter("id", id); - return (Long) query.getResultList().get(0) == 1; + Query query = em.createQuery("SELECT count(l) FROM Libro l WHERE serie = :serie and id != :id"); + query.setParameter("serie", serie); + query.setParameter("id", id); + return (Long) query.getResultList().get(0) == 1; } }