AdmMono/src/com/rjconsultores/ventaboletos/dao/hibernate/UsuarioHibernateDAO.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();
}
}