/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package com.rjconsultores.ventaboletos.dao.hibernate; import java.util.List; import org.hibernate.Criteria; import org.hibernate.SessionFactory; import org.hibernate.criterion.MatchMode; import org.hibernate.criterion.Order; import org.hibernate.criterion.Projections; import org.hibernate.criterion.Restrictions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Repository; import com.rjconsultores.ventaboletos.dao.ParadaDAO; import com.rjconsultores.ventaboletos.entidad.Ciudad; import com.rjconsultores.ventaboletos.entidad.Nodo; import com.rjconsultores.ventaboletos.entidad.Parada; import com.rjconsultores.ventaboletos.entidad.Ruta; import com.rjconsultores.ventaboletos.entidad.TipoParada; /** * * @author Administrador */ @Repository("paradaDAO") public class ParadaHibernateDAO extends GenericHibernateDAO implements ParadaDAO { @Autowired public ParadaHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) { setSessionFactory(factory); } @Override public List obtenerTodos() { Criteria c = getSession().createCriteria(getPersistentClass()); c.add(Restrictions.eq("activo", Boolean.TRUE)); c.addOrder(Order.asc("descparada")); return c.list(); } public List buscar(String descparada, String cveparada, Ciudad ciudad, TipoParada tipoParada, Nodo nodo) { Criteria c = getSession().createCriteria(getPersistentClass()); c.add(Restrictions.eq("activo", Boolean.TRUE)); c.add(Restrictions.eq("descparada", descparada)); c.add(Restrictions.eq("cveparada", cveparada)); c.add(Restrictions.eq("ciudad", ciudad)); c.add(Restrictions.eq("tipoParada", tipoParada)); c.add(Restrictions.eq("nodo", nodo)); return c.list(); } public List buscar(String descparada) { Criteria c = getSession().createCriteria(getPersistentClass()); c.add(Restrictions.eq("activo", Boolean.TRUE)); c.add(Restrictions.eq("descparada", descparada)); return c.list(); } public List buscarCVE(String cveparada) { Criteria c = getSession().createCriteria(getPersistentClass()); c.add(Restrictions.eq("activo", Boolean.TRUE)); c.add(Restrictions.eq("cveparada", cveparada)); return c.list(); } public List buscaLike(String descparada) { Criteria c = getSession().createCriteria(getPersistentClass()); c.add(Restrictions.eq("activo", Boolean.TRUE)); c.add(Restrictions.like("descparada", descparada, MatchMode.START)); c.addOrder(Order.asc("descparada")); return c.list(); } public Long count(TipoParada tipoParada) { Criteria c = this.makeCriteria(); c.add(Restrictions.eq("tipoParada", tipoParada)); c.add(Restrictions.eq("activo", Boolean.TRUE)); c.setProjection(Projections.rowCount()); return HibernateFix.count(c.list()); } @Override public List buscar(Integer codAntt) { Criteria c = getSession().createCriteria(getPersistentClass()); c.add(Restrictions.eq("activo", Boolean.TRUE)); c.add(Restrictions.eq("codantt", codAntt)); return c.list(); } @Override public List obtenerOrigenPorRuta(Ruta ruta) { Criteria c = getSession().createCriteria(getPersistentClass()); c.createAlias("tramoOrigemList", "tramo"); c.createAlias("tramo.rutaCombinacionList", "rutaCombinacion"); c.createAlias("rutaCombinacion.ruta", "ruta"); c.add(Restrictions.eq("activo", Boolean.TRUE)); c.add(Restrictions.eq("ruta.rutaId", ruta.getRutaId())); c.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); return c.list(); } }