Example usage for org.hibernate.criterion Projections sum

List of usage examples for org.hibernate.criterion Projections sum

Introduction

In this page you can find the example usage for org.hibernate.criterion Projections sum.

Prototype

public static AggregateProjection sum(String propertyName) 

Source Link

Document

A property value sum projection

Usage

From source file:io.heming.accountbook.facade.RecordQuerier.java

License:Apache License

public double totalSales() throws Exception {
    double sales = 0;
    Session session = FacadeUtil.getSessionFactory().getCurrentSession();
    Transaction tx = null;//  www .  j  av a  2 s .  c om
    try {
        tx = session.beginTransaction();
        Criteria criteria = session.createCriteria(Record.class);
        buildCriteria(criteria);
        sales = ((Number) criteria.setProjection(Projections.sum("price")).uniqueResult()).doubleValue();
        tx.commit();
    } catch (Exception e) {
        if (tx != null)
            tx.rollback();
        throw e;
    }
    return sales;
}

From source file:mx.edu.um.mateo.activos.dao.impl.ActivoDaoHibernate.java

License:Open Source License

@Override
@Transactional(readOnly = true)/*from w w w  .j a va 2s.  c o  m*/
public Map<String, Object> lista(Map<String, Object> params) {
    log.debug("Buscando lista de activos con params {}", params);
    if (params == null) {
        params = new HashMap<>();
    }

    if (!params.containsKey("max")) {
        params.put("max", 10);
    } else {
        params.put("max", Math.min((Integer) params.get("max"), 100));
    }

    if (params.containsKey("pagina")) {
        Long pagina = (Long) params.get("pagina");
        Long offset = (pagina - 1) * (Integer) params.get("max");
        params.put("offset", offset.intValue());
    }

    if (!params.containsKey("offset")) {
        params.put("offset", 0);
    }
    Criteria criteria = currentSession().createCriteria(Activo.class);
    Criteria countCriteria = currentSession().createCriteria(Activo.class);

    criteria.createAlias("tipoActivo", "ta");
    countCriteria.createAlias("tipoActivo", "ta");

    if (params.containsKey("empresa")) {
        criteria.createCriteria("empresa").add(Restrictions.idEq(params.get("empresa")));
        countCriteria.createCriteria("empresa").add(Restrictions.idEq(params.get("empresa")));
    }

    if (params.containsKey("tipoActivoIds")) {
        criteria.add(Restrictions.in("ta.id", (List) params.get("tipoActivoIds")));
        countCriteria.add(Restrictions.in("ta.id", (List) params.get("tipoActivoIds")));
    }

    if (params.containsKey("cuentaId")) {
        criteria.createCriteria("centroCosto").add(Restrictions.eq("id.idCosto", params.get("cuentaId")));
        countCriteria.createCriteria("centroCosto").add(Restrictions.eq("id.idCosto", params.get("cuentaId")));
    }

    if (params.containsKey("proveedorId")) {
        criteria.createCriteria("proveedor").add(Restrictions.idEq(params.get("proveedorId")));
        countCriteria.createCriteria("proveedor").add(Restrictions.idEq(params.get("proveedorId")));
    }

    Date fechaIniciado = null;
    if (params.containsKey("fechaIniciado")) {
        fechaIniciado = (Date) params.get("fechaIniciado");
        criteria.add(Restrictions.ge("fechaCompra", fechaIniciado));
        countCriteria.add(Restrictions.ge("fechaCompra", fechaIniciado));
    }

    Date fechaTerminado = null;
    if (params.containsKey("fechaTerminado")) {
        Calendar cal = Calendar.getInstance();
        cal.setTime((Date) params.get("fechaTerminado"));
        cal.set(Calendar.HOUR_OF_DAY, 23);
        cal.set(Calendar.MINUTE, 59);
        cal.set(Calendar.SECOND, 59);
        cal.set(Calendar.MILLISECOND, 999);
        fechaTerminado = cal.getTime();
        criteria.add(Restrictions.le("fechaCompra", fechaTerminado));
        countCriteria.add(Restrictions.le("fechaCompra", fechaTerminado));
    }

    if (params.containsKey("bajas")) {
        if (fechaIniciado != null) {
            criteria.add(Restrictions.eq("inactivo", true));
            countCriteria.add(Restrictions.eq("inactivo", true));
            criteria.add(Restrictions.ge("fechaInactivo", fechaIniciado));
            countCriteria.add(Restrictions.ge("fechaInactivo", fechaIniciado));
            if (fechaTerminado != null) {
                criteria.add(Restrictions.le("fechaInactivo", fechaTerminado));
                countCriteria.add(Restrictions.le("fechaInactivo", fechaTerminado));
            }
        } else if (fechaTerminado != null) {
            criteria.add(Restrictions.eq("inactivo", true));
            countCriteria.add(Restrictions.eq("inactivo", true));
            criteria.add(Restrictions.le("fechaInactivo", fechaTerminado));
            countCriteria.add(Restrictions.le("fechaInactivo", fechaTerminado));
        } else {
            criteria.add(Restrictions.eq("inactivo", true));
            countCriteria.add(Restrictions.eq("inactivo", true));
        }
    } else {
        criteria.add(Restrictions.eq("inactivo", false));
        countCriteria.add(Restrictions.eq("inactivo", false));
    }

    if (params.containsKey("reubicaciones")) {
        if (fechaIniciado != null) {
            criteria.add(Restrictions.isNotNull("fechaReubicado"));
            countCriteria.add(Restrictions.isNotNull("fechaReubicado"));
            criteria.add(Restrictions.ge("fechaReubicado", fechaIniciado));
            countCriteria.add(Restrictions.ge("fechaReubicado", fechaIniciado));
            if (fechaTerminado != null) {
                criteria.add(Restrictions.le("fechaReubicado", fechaIniciado));
                countCriteria.add(Restrictions.le("fechaReubicado", fechaIniciado));
            }
        } else if (fechaTerminado != null) {
            criteria.add(Restrictions.isNotNull("fechaReubicado"));
            countCriteria.add(Restrictions.isNotNull("fechaReubicado"));
            criteria.add(Restrictions.le("fechaReubicado", fechaIniciado));
            countCriteria.add(Restrictions.le("fechaReubicado", fechaIniciado));
        } else {
            criteria.add(Restrictions.isNotNull("fechaReubicado"));
            countCriteria.add(Restrictions.isNotNull("fechaReubicado"));
        }
    }

    if (params.containsKey("responsableNombre")) {
        criteria.add(Restrictions.ilike("responsable", (String) params.get("responsable"), MatchMode.ANYWHERE));
        countCriteria
                .add(Restrictions.ilike("responsable", (String) params.get("responsable"), MatchMode.ANYWHERE));
    }

    if (params.containsKey("filtro")) {
        String filtro = (String) params.get("filtro");
        Disjunction propiedades = Restrictions.disjunction();
        propiedades.add(Restrictions.ilike("folio", filtro, MatchMode.ANYWHERE));
        propiedades.add(Restrictions.ilike("procedencia", filtro, MatchMode.ANYWHERE));
        propiedades.add(Restrictions.ilike("factura", filtro, MatchMode.ANYWHERE));
        propiedades.add(Restrictions.ilike("pedimento", filtro, MatchMode.ANYWHERE));
        propiedades.add(Restrictions.ilike("poliza", filtro, MatchMode.ANYWHERE));
        propiedades.add(Restrictions.ilike("codigo", filtro, MatchMode.ANYWHERE));
        propiedades.add(Restrictions.ilike("descripcion", filtro, MatchMode.ANYWHERE));
        propiedades.add(Restrictions.ilike("marca", filtro, MatchMode.ANYWHERE));
        propiedades.add(Restrictions.ilike("modelo", filtro, MatchMode.ANYWHERE));
        propiedades.add(Restrictions.ilike("ubicacion", filtro, MatchMode.ANYWHERE));
        propiedades.add(Restrictions.ilike("responsable", filtro, MatchMode.ANYWHERE));
        criteria.add(propiedades);
        countCriteria.add(propiedades);
    }

    if (params.containsKey("order")) {
        criteria.addOrder(Order.asc("ta.cuenta.id.idCtaMayor"));
        String campo = (String) params.get("order");
        if (params.get("sort").equals("desc")) {
            criteria.addOrder(Order.desc(campo));
        } else {
            criteria.addOrder(Order.asc(campo));
        }
    } else {
        criteria.addOrder(Order.asc("ta.cuenta.id.idCtaMayor"));
        criteria.addOrder(Order.desc("folio"));
    }

    if (!params.containsKey("reporte")) {
        criteria.setFirstResult((Integer) params.get("offset"));
        criteria.setMaxResults((Integer) params.get("max"));
    }
    params.put("activos", criteria.list());

    countCriteria.setProjection(Projections.rowCount());
    params.put("cantidad", (Long) countCriteria.list().get(0));

    ProjectionList list = Projections.projectionList();
    list.add(Projections.sum("depreciacionAnual"), "depreciacionAnual");
    list.add(Projections.sum("depreciacionMensual"), "depreciacionMensual");
    list.add(Projections.sum("depreciacionAcumulada"), "depreciacionAcumulada");
    list.add(Projections.sum("moi"), "moi");
    list.add(Projections.groupProperty("fechaDepreciacion"), "fechaDepreciacion");
    countCriteria.setProjection(list);

    List<?> proyecciones = countCriteria.list();
    Iterator<?> iterator = proyecciones.iterator();
    if (iterator.hasNext()) {
        Object[] obj = (Object[]) iterator.next();
        NumberFormat nf = DecimalFormat.getInstance();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
        Date fecha;
        if (obj[4] != null) {
            fecha = (Date) obj[4];
        } else {
            fecha = new Date();
        }
        params.put("resumen", new String[] { nf.format(obj[0]), nf.format(obj[1]), nf.format(obj[2]),
                nf.format(obj[3]), sdf.format(fecha) });
    }

    return params;
}

From source file:net.firejack.platform.core.store.statistics.LogTransactionStore.java

License:Apache License

@Override
@Transactional(readOnly = true)//w  ww.j av a2  s  .co m
public List<LogTransactionModel> findAggregatedByTermAndDates(Integer offset, Integer limit, String term,
        String lookup, Date startDate, Date endDate, String sortColumn, String sortDirection,
        MetricGroupLevel level) {
    ProjectionList projectionList = Projections.projectionList();
    projectionList.add(Projections.min("hourPeriod"), "startTime").add(Projections.max("hourPeriod"), "endTime")
            .add(Projections.groupProperty("packageLookup"), "packageLookup")
            .add(Projections.sum("transactions"), "transactions")
            .add(Projections.sum("entitiesLoaded"), "entitiesLoaded")
            .add(Projections.sum("entitiesUpdated"), "entitiesUpdated")
            .add(Projections.sum("entitiesInserted"), "entitiesInserted")
            .add(Projections.sum("entitiesDeleted"), "entitiesDeleted")
            .add(Projections.sum("entitiesFetched"), "entitiesFetched")
            .add(Projections.sum("collectionsLoaded"), "collectionsLoaded")
            .add(Projections.sum("collectionsUpdated"), "collectionsUpdated")
            .add(Projections.sum("collectionsRecreated"), "collectionsRecreated")
            .add(Projections.sum("collectionsRemoved"), "collectionsRemoved")
            .add(Projections.sum("collectionsFetched"), "collectionsFetched")
            .add(Projections.max("maxQueryTime"), "maxQueryTime");

    switch (level) {
    case HOUR:
        projectionList.add(Projections.groupProperty("hourPeriod").as("hourPeriod"));
        break;
    case DAY:
        projectionList.add(Projections.groupProperty("dayPeriod").as("dayPeriod"));
        break;
    case WEEK:
        projectionList.add(Projections.groupProperty("weekPeriod").as("weekPeriod"));
        break;
    case MONTH:
        projectionList.add(Projections.groupProperty("monthPeriod").as("monthPeriod"));
        break;
    }

    return findAllByProjection(offset, limit, term, lookup, startDate, endDate, sortColumn, sortDirection,
            projectionList);
}

From source file:net.firejack.platform.core.store.statistics.MetricsEntryStore.java

License:Apache License

@Override
public List<AggregatedMetricsEntryModel> findAggregatedByTermAndDates(Integer offset, Integer limit,
        String term, String lookup, Date startDate, Date endDate, String sortColumn, String sortDirection,
        MetricGroupLevel level, LogEntryType logEntryType) {

    ProjectionList projectionList = Projections.projectionList();
    projectionList.add(Projections.min("hourPeriod"), "startTime").add(Projections.max("hourPeriod"), "endTime")
            .add(Projections.groupProperty("lookup"), "lookup")
            .add(Projections.groupProperty("systemAccountName"), "systemAccountName")
            .add(Projections.groupProperty("username"), "username")
            .add(Projections.sum("numberOfInvocations"), "numberOfInvocations")
            .add(Projections.avg("averageExecutionTime"), "averageExecutionTime")
            .add(Projections.min("minResponseTime"), "minResponseTime")
            .add(Projections.max("maxResponseTime"), "maxResponseTime")
            .add(Projections.avg("successRate"), "successRate");

    switch (level) {
    case HOUR://  w  ww .ja va2s  .c  o  m
        projectionList.add(Projections.groupProperty("hourPeriod").as("hourPeriod"));
        break;
    case DAY:
        projectionList.add(Projections.groupProperty("dayPeriod").as("dayPeriod"));
        break;
    case WEEK:
        projectionList.add(Projections.groupProperty("weekPeriod").as("weekPeriod"));
        break;
    case MONTH:
        projectionList.add(Projections.groupProperty("monthPeriod").as("monthPeriod"));
        break;
    }

    return findAllByProjection(offset, limit, term, lookup, startDate, endDate, sortColumn, sortDirection,
            logEntryType, projectionList);
}

From source file:net.longfalcon.newsj.persistence.hibernate.PartDAOImpl.java

License:Open Source License

@Override
@Transactional(readOnly = true, propagation = Propagation.SUPPORTS)
public Long sumPartsSizeByBinaryId(long binaryId) {
    Criteria criteria = sessionFactory.getCurrentSession().createCriteria(Part.class);
    criteria.add(Restrictions.eq("binaryId", binaryId));
    criteria.setProjection(Projections.sum("size"));

    return (Long) criteria.uniqueResult();
}

From source file:org.apache.usergrid.apm.service.charts.service.NetworkMetricsChartUtil.java

License:Apache License

public static ProjectionList getProjectionList(MetricsChartCriteria cq) {
    ProjectionList projList = Projections.projectionList();
    //Adding GroupBy. We will allow only one groupby so that chart looks cleaner.
    if (cq.isGroupedByApp()) {
        projList.add(Projections.groupProperty("this.appId"), "appId");
    } else/*  w ww.ja  v  a2  s  .com*/
        projList.add(Projections.property("this.appId"), "appId");

    //projList.add(Projections.groupProperty("appId"),"appId");

    if (cq.isGroupedByNetworkType()) {
        projList.add(Projections.groupProperty("this.networkType"), "networkType");
    }

    else if (cq.isGroupedByNetworkCarrier()) {
        projList.add(Projections.groupProperty("this.networkCarrier"), "networkCarrier");
    }

    else if (cq.isGroupedByAppVersion()) {
        projList.add(Projections.groupProperty("this.applicationVersion"), "applicationVersion");
    } else if (cq.isGroupedByAppConfigType()) {
        projList.add(Projections.groupProperty("this.appConfigType"), "appConfigType");
    } else if (cq.isGroupedByDeviceModel()) {
        projList.add(Projections.groupProperty("this.deviceModel"), "deviceModel");
    } else if (cq.isGroupedbyDevicePlatform()) {
        projList.add(Projections.groupProperty("this.devicePlatform"), "devicePlatform");
    }

    switch (cq.getSamplePeriod()) {
    //see http://stackoverflow.com/questions/84644/hibernate-query-by-example-and-projections on why "this." is needed 
    //in following lines
    case MINUTE:
        projList.add(Projections.groupProperty("this.endMinute"), "endMinute");
        break;
    case HOUR:
        projList.add(Projections.groupProperty("this.endHour"), "endHour");
        break;
    case DAY_WEEK:
        projList.add(Projections.groupProperty("this.endDay"), "endDay");
        break;
    case DAY_MONTH:
        projList.add(Projections.groupProperty("this.endDay"), "endDay");
        break;
    case MONTH:
        projList.add(Projections.groupProperty("this.endMonth"), "endMonth");
        break;
    }

    //Adding Projections

    projList.add(Projections.sum("numSamples"), "numSamples");
    projList.add(Projections.sum("numErrors"), "numErrors");
    projList.add(Projections.sum("sumLatency"), "sumLatency");
    projList.add(Projections.max("maxLatency"), "maxLatency");
    projList.add(Projections.min("minLatency"), "minLatency");

    //may run into this bug because of alias http://stackoverflow.com/questions/84644/hibernate-query-by-example-and-projections
    //And I did run into it. ouch. Fix was to add this.filedName !!

    return projList;

}

From source file:org.balisunrise.daa.hibernate.HQuery.java

License:Open Source License

@Override
public <V> V sum(String property) {
    return (V) hcrit.setProjection(Projections.sum(property)).uniqueResult();
}

From source file:org.candlepin.model.ConsumerCurator.java

License:Open Source License

public int getConsumerEntitlementCount(Owner owner, ConsumerType type) {
    Criteria c = createSecureCriteria().add(Restrictions.eq("owner", owner)).add(Restrictions.eq("type", type))
            .createAlias("entitlements", "ent").setMaxResults(0).setProjection(Projections.sum("ent.quantity"));
    Long result = (Long) c.uniqueResult();
    return result == null ? 0 : result.intValue();
}

From source file:org.davidmendoza.irsvped.dao.impl.PartyDaoHibernate.java

License:Open Source License

@Override
public Integer getAllotedSeats(Party party) {
    Criteria criteria = currentSession().createCriteria(Party.class);

    criteria.createCriteria("event").add(Restrictions.idEq(party.getEvent().getId()));
    criteria.setProjection(Projections.sum("seats"));

    Long results = (Long) criteria.uniqueResult();
    log.debug("Results {}", results);
    if (results == null) {
        results = 0L;/*  w ww . ja  va2 s  .c o m*/
    }
    return results.intValue();
}

From source file:org.egov.ptis.actions.reports.BoundaryWisePropUsgeDelegate.java

License:Open Source License

public List getZoneList() {
    LOGGER.debug("Entered into getZoneList method");
    List zoneList = null;//from   w w w . ja va2s. c  om
    Criterion criterion = null;
    Projection projection = Projections.projectionList().add(Projections.property("zone.id"))
            .add(Projections.property("propTypeMstrID.id")).add(Projections.sum("aggrArrDmd"))
            .add(Projections.sum("aggrCurrDmd")).add(Projections.count("basicPropertyID"))
            .add(Projections.groupProperty("zone.id")).add(Projections.groupProperty("propTypeMstrID"));
    Order order = Order.asc("zone.id");

    /*
     * Integer vacTypeId = getPropertyIdbyCode("OPEN_PLOT"); criterion =
     * Restrictions.ne("propTypeMstrID", vacTypeId);
     */
    zoneList = propertyDAO.getPropMaterlizeViewList(projection, criterion, order);
    LOGGER.debug("Zone list : " + (zoneList != null ? zoneList : ZERO));
    LOGGER.debug("Exit from getZoneList method");
    return zoneList;
}