/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package com.rjconsultores.ventaboletos.dao.hibernate; import com.rjconsultores.ventaboletos.dao.TarjetaFidelidadDAO; import com.rjconsultores.ventaboletos.entidad.TarjetaFidelidad; import com.rjconsultores.ventaboletos.entidad.TarjetaFidelidadCuenta; import java.io.Serializable; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.hibernate.Criteria; import org.hibernate.Query; import org.hibernate.SessionFactory; import org.hibernate.criterion.ProjectionList; import org.hibernate.criterion.Projections; import org.hibernate.criterion.Restrictions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Repository; /** * * @author Shiro */ @Repository("tarjetaFidelidadDAO") public class TarjetaFidelidadHibernateDAO extends GenericHibernateDAO implements TarjetaFidelidadDAO { @Autowired public TarjetaFidelidadHibernateDAO(@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 TarjetaFidelidad obtenerNumTarjeta(Integer numTarjeta){ Criteria c = getSession().createCriteria(getPersistentClass()); c.add(Restrictions.eq("activo", Boolean.TRUE)); c.add(Restrictions.eq("numTarjeta", numTarjeta)); return (TarjetaFidelidad)c.list().get(0); } public List obtenerCantDesc() { /*Criteria c = getSession().createCriteria(getPersistentClass()); c.add(Restrictions.eq("activo", Boolean.TRUE)); ProjectionList projList = Projections.projectionList(); projList.add(Projections.groupProperty("descGeneracion")); projList.add(Projections.rowCount()); c.setProjection(projList); List list = c.list(); List list1 =list; list.get(0); list.get(1); //el la descripcion //list.get( 0 )[1] //el la cantidad return list; */ List sumatarjetas = new ArrayList(); String hql = "select count(*),descGeneracion" + " from TarjetaFidelidad where activo = 1 group by descGeneracion"; Query qry = getSession().createQuery(hql); for (Iterator it = qry.iterate(); it.hasNext();) { Object[] row = (Object[]) it.next(); TarjetaFidelidadCuenta item = new TarjetaFidelidadCuenta(); item.setDescGeneracion((String) row[1]); item.setCantidad(HibernateFix.count(row[0]).intValue()); sumatarjetas.add(item); } return sumatarjetas; } }