112 lines
3.5 KiB
Java
112 lines
3.5 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.Query;
|
|
import org.hibernate.SQLQuery;
|
|
import org.hibernate.SessionFactory;
|
|
import org.hibernate.criterion.MatchMode;
|
|
import org.hibernate.criterion.Order;
|
|
import org.hibernate.criterion.Restrictions;
|
|
import org.hibernate.transform.AliasToBeanResultTransformer;
|
|
import org.hibernate.type.IntegerType;
|
|
import org.hibernate.type.StringType;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Qualifier;
|
|
import org.springframework.stereotype.Repository;
|
|
|
|
import com.rjconsultores.ventaboletos.dao.UsuarioDAO;
|
|
import com.rjconsultores.ventaboletos.dao.sqlbuilder.SQLBuilder;
|
|
import com.rjconsultores.ventaboletos.entidad.Empleado;
|
|
import com.rjconsultores.ventaboletos.entidad.Usuario;
|
|
import com.rjconsultores.ventaboletos.vo.caja.UsuarioActivoVO;
|
|
|
|
/**
|
|
*
|
|
* @author rodrigo
|
|
*/
|
|
@Repository("usuarioDAO")
|
|
public class UsuarioHibernateDAO extends GenericHibernateDAO<Usuario, Integer> implements UsuarioDAO {
|
|
@Autowired
|
|
private SQLBuilder sqlBuilder;
|
|
|
|
@Autowired
|
|
public UsuarioHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) {
|
|
setSessionFactory(factory);
|
|
}
|
|
|
|
@Override
|
|
public List<Usuario> obtenerTodos() {
|
|
Criteria c = getSession().createCriteria(getPersistentClass());
|
|
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
|
|
|
return c.list();
|
|
}
|
|
|
|
public List<Usuario> buscarPeloNome(String nome) {
|
|
Criteria c = getSession().createCriteria(getPersistentClass());
|
|
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
|
|
|
c.add(Restrictions.eq("nombusuario", nome));
|
|
c.addOrder(Order.asc("nombusuario"));
|
|
|
|
return c.list();
|
|
}
|
|
|
|
public Usuario buscarPeloNomeSenha(String stUsuario, String senha) {
|
|
Criteria c = getSession().createCriteria(getPersistentClass());
|
|
c.add(Restrictions.eq("claveUsuario", stUsuario));
|
|
c.add(Restrictions.eq("senha", senha));
|
|
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
|
|
|
return (Usuario) c.uniqueResult();
|
|
}
|
|
|
|
public List<Usuario> buscarPorEmpleado(Empleado empleado) {
|
|
Criteria c = getSession().createCriteria(getPersistentClass());
|
|
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
|
|
|
c.add(Restrictions.eq("empleado", empleado));
|
|
|
|
return c.list();
|
|
}
|
|
|
|
public List<Usuario> buscarPelaCveUsuario(String cveUsuario) {
|
|
Query query = getSession().createQuery("select u from Usuario u where u.activo =1 and u.claveUsuario = :clave order by u.claveUsuario");
|
|
query.setParameter("clave", cveUsuario);
|
|
|
|
return query.list();
|
|
}
|
|
|
|
@SuppressWarnings("unchecked")
|
|
public List<UsuarioActivoVO> buscarUsuariosActivo() {
|
|
String sqlBuscarUsuariosActivo = sqlBuilder.getSQLBuscarUsuariosActivo();
|
|
|
|
SQLQuery sql = getSession().createSQLQuery(sqlBuscarUsuariosActivo)
|
|
.addScalar("usuarioId", IntegerType.INSTANCE)
|
|
.addScalar("cveusuario", StringType.INSTANCE)
|
|
.addScalar("nombusuario", StringType.INSTANCE);
|
|
|
|
sql.setResultTransformer(new AliasToBeanResultTransformer(UsuarioActivoVO.class));
|
|
|
|
return sql.list();
|
|
}
|
|
|
|
@Override
|
|
@SuppressWarnings("unchecked")
|
|
public List<Usuario> buscarPeloNomeLike(String nome) {
|
|
Criteria c = getSession().createCriteria(getPersistentClass());
|
|
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
|
|
|
c.add(Restrictions.like("nombusuario", nome, MatchMode.START));
|
|
c.addOrder(Order.asc("nombusuario"));
|
|
|
|
return c.list();
|
|
}
|
|
}
|