package com.titanic.ventapasajes.repositorio; import com.titanic.ventapasajes.modelo.Cliente; import com.titanic.ventapasajes.modelo.HojaRuta; import com.titanic.ventapasajes.repositorio.filtros.HojaRutaFiltros; import com.titanic.ventapasajes.service.NegocioExcepciones; import com.titanic.ventapasajes.util.jpa.Transaccion; import org.apache.commons.lang3.StringUtils; import org.hibernate.Criteria; import org.hibernate.Session; import org.hibernate.criterion.MatchMode; import org.hibernate.criterion.Order; import org.hibernate.criterion.Restrictions; import javax.inject.Inject; import javax.persistence.EntityManager; import javax.persistence.PersistenceException; import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.Root; import javax.persistence.metamodel.EntityType; import javax.persistence.metamodel.Metamodel; import java.io.Serializable; import java.util.Date; import java.util.List; /** * Created by josediaz on 1/11/16. */ public class HojaRutaRepositorio implements Serializable { private static final long serialVersionUID = 1L; @Inject private EntityManager entityManager; public HojaRuta buscarHojaRutaPorId(Long id) { return this.entityManager.find(HojaRuta.class, id); } public List<HojaRuta> buscarTodos() { return this.entityManager.createQuery("from HojaRuta").getResultList(); } public List<HojaRuta> listarHojaRutaFiltrados(HojaRutaFiltros hojaRutaFiltros) { Session session = entityManager.unwrap(Session.class); Criteria criteria = session.createCriteria(HojaRuta.class); criteria.add(Restrictions.between("fechaRegistro", hojaRutaFiltros.getFechaDesde(), hojaRutaFiltros.getFechaHasta())); return criteria.addOrder(Order.asc("fechaRegistro")).list(); } @Transaccion public void removerHojaRuta(HojaRuta hojaRuta) { try{ hojaRuta = buscarHojaRutaPorId(hojaRuta.getIdeHojaRuta()); entityManager.remove(hojaRuta); entityManager.flush(); }catch(PersistenceException e){ throw new NegocioExcepciones("La Hoja Ruta no puede ser eliminada."); } } @Transaccion public HojaRuta adicionarHojaRuta(HojaRuta hojaRuta) { return entityManager.merge(hojaRuta); } }