/* * 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 implements UsuarioDAO { @Autowired private SQLBuilder sqlBuilder; @Autowired public UsuarioHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) { setSessionFactory(factory); } @Override public List obtenerTodos() { Criteria c = getSession().createCriteria(getPersistentClass()); c.add(Restrictions.eq("activo", Boolean.TRUE)); return c.list(); } public List 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 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 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 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 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(); } }