/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package com.rjconsultores.ventaboletos.dao.hibernate; import java.util.Calendar; import java.util.List; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.hibernate.Criteria; import org.hibernate.Query; 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 org.springframework.transaction.annotation.Transactional; import com.rjconsultores.ventaboletos.dao.ConexionRutaLocalidadeRemovidaDAO; import com.rjconsultores.ventaboletos.entidad.ConexionRutaLocalidadeRemovida; import com.rjconsultores.ventaboletos.entidad.Parada; import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; /** * * @author valdevirsp */ @Repository("conexionRutaLocalidadeRemovidaDAO") public class ConexionRutaLocalidadeRemovidaHibernateDAO extends GenericHibernateDAO implements ConexionRutaLocalidadeRemovidaDAO { private static Logger log = LogManager.getLogger(ConexionRutaLocalidadeRemovidaHibernateDAO.class); @Autowired public ConexionRutaLocalidadeRemovidaHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) { setSessionFactory(factory); } @Override public void removerPorParada(Parada parada) { try { Criteria c = this.makeCriteria(); c.add(Restrictions.eq("paradaId", parada.getParadaId().longValue())); c.add(Restrictions.eq(ACTIVO, Boolean.TRUE)); ConexionRutaLocalidadeRemovida conexionRutaLocalidadeRemovida = (ConexionRutaLocalidadeRemovida) c.uniqueResult(); borrar(conexionRutaLocalidadeRemovida); } catch (Exception e) { log.error("Erro ao remover por por paradaId", e); } } @Override public void removerPorConexionrutaconfIdePorParada(Integer conexionrutaconfId,Parada parada) { try { Criteria c = this.makeCriteria(); c.add(Restrictions.eq("conexionrutaconfId", conexionrutaconfId)); c.add(Restrictions.eq("paradaId", parada.getParadaId().longValue())); c.add(Restrictions.eq(ACTIVO, Boolean.TRUE)); List conexionRutaLocalidadeRemovidaList = c.list(); ConexionRutaLocalidadeRemovida conexionRutaLocalidadeRemovida =conexionRutaLocalidadeRemovidaList != null && conexionRutaLocalidadeRemovidaList.size() > 0 ? conexionRutaLocalidadeRemovidaList.get(0) : null; if(conexionRutaLocalidadeRemovida != null) { borrar(conexionRutaLocalidadeRemovida); } } catch (Exception e) { log.error("Erro ao remover por por paradaId", e); } } @Transactional public void borrar(ConexionRutaLocalidadeRemovida entidad) { try { entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); entidad.setFecmodif(Calendar.getInstance().getTime()); entidad.setActivo(Boolean.FALSE); actualizacion(entidad); } catch (Exception e) { log.error("Erro ao borrar conexionRutaLocalidadeRemovida ", e); } } @SuppressWarnings("unchecked") public ConexionRutaLocalidadeRemovida obtenerPorParadaId(Integer paradaId) { try { Criteria c = this.makeCriteria(); c.add(Restrictions.eq("paradaId", paradaId)); c.add(Restrictions.eq(ACTIVO, Boolean.TRUE)); List conexionRutaLocalidadeRemovidaList = c.list(); return conexionRutaLocalidadeRemovidaList != null && conexionRutaLocalidadeRemovidaList.size() > 0 ? conexionRutaLocalidadeRemovidaList.get(0) : null; } catch (Exception e) { log.error("Erro ao obter paradas por por paradaId", e); return null; } } @SuppressWarnings("unchecked") public List obtenerPorParadaIdList(List paradaIdList) { try { Criteria c = this.makeCriteria(); c.add(Restrictions.in("paradaId", paradaIdList)); c.add(Restrictions.eq(ACTIVO, Boolean.TRUE)); List conexionRutaLocalidadeRemovidaList = c.list(); return conexionRutaLocalidadeRemovidaList; } catch (Exception e) { log.error("Erro ao obter paradas por por paradaIdList", e); return null; } } @Override public ConexionRutaLocalidadeRemovida obtenerPorParadaIdEConexionrutaconfId(Integer conexionRutaConfId, Integer paradaId) { // TODO Auto-generated method stub try { Criteria c = this.makeCriteria(); c.add(Restrictions.eq("conexionRutaConfId", conexionRutaConfId)); c.add(Restrictions.eq("paradaId", paradaId)); c.add(Restrictions.eq(ACTIVO, Boolean.TRUE)); List conexionRutaLocalidadeRemovidaList = c.list(); return conexionRutaLocalidadeRemovidaList != null && conexionRutaLocalidadeRemovidaList.size() > 0 ? conexionRutaLocalidadeRemovidaList.get(0) : null; } catch (Exception e) { log.error("Erro ao obter paradas por conexionRutaConfId e por paradaId", e); return null; } } @Override public List obtenerPorConexionrutaconfIdEParadaIdList(Integer conexionRutaConfId,List paradaIdList) { try { Criteria c = this.makeCriteria(); c.add(Restrictions.eq("conexionRutaConfId", conexionRutaConfId)); c.add(Restrictions.in("paradaId", paradaIdList)); c.add(Restrictions.eq(ACTIVO, Boolean.TRUE)); List conexionRutaLocalidadeRemovidaList = c.list(); return conexionRutaLocalidadeRemovidaList; } catch (Exception e) { log.error("Erro ao obter paradas por conexionRutaConfId e paradaIdList", e); return null; } } @Override public void removerTodosPorConexionrutaconfId(Integer conexionRutaConfId) { StringBuilder hql = new StringBuilder(); hql.append("delete CONEXION_RUTA_LOC_REMOVIDA "); hql.append("where CONEXIONRUTACONF_ID=:conexionRutaConfId "); Query query = getSession().createSQLQuery(hql.toString()); query.setInteger("conexionRutaConfId", conexionRutaConfId); query.executeUpdate(); } }