AdmMono/src/com/rjconsultores/ventaboletos/dao/hibernate/CtrlSerieEmbarcadaHibernate...

72 lines
2.6 KiB
Java

package com.rjconsultores.ventaboletos.dao.hibernate;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.SessionFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
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.CtrlSerieEmbarcadaDAO;
import com.rjconsultores.ventaboletos.entidad.CtrlSerieEmbarcada;
import com.rjconsultores.ventaboletos.entidad.DispositivoEmbarcada;
import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.entidad.Estado;
@Repository("ctrlSerieEmbarcadaDAO")
public class CtrlSerieEmbarcadaHibernateDAO extends GenericHibernateDAO<CtrlSerieEmbarcada, Long> implements CtrlSerieEmbarcadaDAO {
private static final Logger log = LoggerFactory.getLogger(CtrlSerieEmbarcadaHibernateDAO.class);
@Autowired
public CtrlSerieEmbarcadaHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) {
setSessionFactory(factory);
}
@Override
@Transactional
public CtrlSerieEmbarcada suscribir(CtrlSerieEmbarcada entity) {
try {
this.getHibernateTemplate().save(entity);
getHibernateTemplate().flush();
return entity;
} catch (final HibernateException ex) {
throw convertHibernateAccessException(ex);
}
}
@Override
@Transactional
public CtrlSerieEmbarcada actualizacion(CtrlSerieEmbarcada entity) {
entity = getHibernateTemplate().merge(entity);
getHibernateTemplate().flush();
return entity;
}
public Boolean validaDispositivoEmpresaEstadoCadastrado(DispositivoEmbarcada dispositivo, Empresa empresa, Estado estado) {
StringBuilder sb = new StringBuilder();
sb.append("select COUNT(se.ctrlSerieEmbarcadaId) ");
sb.append("from CtrlSerieEmbarcada se ");
sb.append("where se.activo = 1 ");
sb.append("and se.dispositivoEmbarcada.dispositivoEmbarcadaId = :dispositivoEmbarcadaId ");
sb.append("and se.empresaId = :empresaId ");
sb.append("and se.estado.estadoId = :estadoId ");
Query qry = getSession().createQuery(sb.toString());
qry.setLong("dispositivoEmbarcadaId", dispositivo.getDispositivoEmbarcadaId());
qry.setLong("empresaId", empresa.getEmpresaId());
qry.setLong("estadoId", estado.getEstadoId());
Number n = (Number) qry.uniqueResult();
if (n == null) {
return false;
}
return n.longValue() > 0;
}
}