72 lines
2.6 KiB
Java
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;
|
|
}
|
|
}
|