package com.rjconsultores.ventaboletos.dao.hibernate;

import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
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.ConexionRutaExcepcionPtoVtaDAO;
import com.rjconsultores.ventaboletos.entidad.ConexionRutaConf;
import com.rjconsultores.ventaboletos.entidad.ConexionRutaExcepcionPtoVta;

@Repository("conexionRutaRestricaoPtoVtaDAO")
public class ConexionRutaRestricaoPtoVtaHibernateDAO extends GenericHibernateDAO<ConexionRutaExcepcionPtoVta, Integer> implements ConexionRutaExcepcionPtoVtaDAO {

	@Autowired
	public ConexionRutaRestricaoPtoVtaHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) {
		setSessionFactory(factory);
	}

	@Override
	public List<ConexionRutaExcepcionPtoVta> buscarPorConexionConf(ConexionRutaConf conexionRutaConf) {
		Criteria c = getSession().createCriteria(getPersistentClass());
		c.add(Restrictions.eq("conexionRutaConf", conexionRutaConf));
		c.add(Restrictions.eq(ACTIVO, Boolean.TRUE));
		return c.list();
	}

	@Override
	public void update(ConexionRutaExcepcionPtoVta entidad) {
		Session session = getSessionFactory().getCurrentSession(); 
		session.update(entidad);
		session.flush();
	}
}
