AdmMono/src/com/rjconsultores/ventaboletos/dao/hibernate/ParadaHibernateDAO.java

124 lines
3.6 KiB
Java

/*
* 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<Parada, Integer> implements ParadaDAO {
@Autowired
public ParadaHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) {
setSessionFactory(factory);
}
@Override
public List<Parada> obtenerTodos() {
Criteria c = getSession().createCriteria(getPersistentClass());
c.add(Restrictions.eq("activo", Boolean.TRUE));
c.addOrder(Order.asc("descparada"));
return c.list();
}
public List<Parada> 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<Parada> 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<Parada> 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<Parada> 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<Parada> 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<Parada> 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();
}
}