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:by.andrew.pakhomov.testtask.web.controller.SpentTimeRecordController.java

@RequestMapping("/bydevelopers")
public String getSpentTimeBetweenDatesSumByDevelopers(
        @RequestParam(name = "startDate", required = false) String startDate,
        @RequestParam(name = "finishDate", required = false) String finishDate, Model model) {
    model.addAttribute("records", Collections.emptyMap());
    if (startDate == null && finishDate == null) {
        return "report-spent-time-by-developers";
    } else {//from   w  ww .j  ava2s . c om
        model.addAttribute("startDate", startDate);
        model.addAttribute("finishDate", finishDate);
    }

    List<String> errors = new ArrayList<>(2);

    Date startDateTime = null;
    Date finishDateTime = null;
    try {
        startDateTime = DATE_FORMAT.parse(startDate);
    } catch (ParseException ex) {
        errors.add(
                "       --");
    }
    try {
        finishDateTime = DATE_FORMAT.parse(finishDate);
    } catch (ParseException ex) {
        errors.add(
                "       --");
    }

    if (!errors.isEmpty()) {
        this.addFormErrors(model, errors.toArray(new String[errors.size()]));
        return "report-spent-time-by-developers";
    }

    final Date finalStartDate = startDateTime;
    final Date finalFinishDate = finishDateTime;

    this.executeSafely(model, (Session session) -> {
        Criteria cr = session.createCriteria(SpentTimeRecord.class);
        //            cr.add(Restrictions.between("registrationDate", finalStartDate, finalFinishDate));

        cr.setProjection(Projections.projectionList().add(Projections.sum("spentTimeInSeconds"))
                .add(Projections.groupProperty("employee")));

        List<Object[]> records = cr.list();
        Map<String, Long> report = new HashMap<>();
        for (Object[] current : records) {
            report.put((String) current[1], (long) current[0]);
        }

        model.addAttribute("records", report);
        return true;
    });

    return "report-spent-time-by-developers";
}

From source file:c14_hibernate.ManageEmployee.java

public void totalSalary() {
    Session session = factory.openSession();
    Transaction tx = null;//from w w  w.j av a  2  s .  co m
    try {
        tx = session.beginTransaction();
        Criteria cr = session.createCriteria(Employee.class);
        // To get total salary.
        cr.setProjection(Projections.sum("salary"));
        List totalSalary = cr.list();
        System.out.println("Total Salary: " + totalSalary.get(0));
        tx.commit();
    } catch (HibernateException e) {
        if (tx != null)
            tx.rollback();
        e.printStackTrace();
    } finally {
        session.close();
    }
}

From source file:co.com.codesoftware.logica.facturacion.FacturacionLogica.java

/**
 * Funcion con la cual obtengo el valor de
 *
 * @param valor/*from w  ww .  j a v  a 2  s . c o  m*/
 * @return
 */
public BigDecimal obtieneValorFacturasMes(Integer valor) {
    BigDecimal valorTotal = null;
    System.out.println("Valor " + valor);
    try {
        this.initOperation();
        Criteria crit = this.sesion.createCriteria(FacturaEntity.class);
        crit.setProjection(Projections.sum("valor"));
        if (valor == 0) {
            crit.add(Restrictions
                    .sqlRestriction("to_char(fact_fec_ini , 'mm/yyyy') = to_char(now(), 'mm/yyyy')"));
        } else {
            crit.add(Restrictions
                    .sqlRestriction("to_char(fact_fec_ini , 'mm/yyyy') =  to_char(current_date + interval '-"
                            + valor + " month', 'mm/yyyy')"));
        }
        valorTotal = (BigDecimal) crit.uniqueResult();
    } catch (Exception e) {
        e.printStackTrace();
    }
    return valorTotal;
}

From source file:com.abiquo.server.core.statistics.CloudUsageDAO.java

License:Open Source License

public CloudUsage sumTotalCloudUsage() {
    // TODO: Include aggregators functionality in bzengine?
    Session ses = HibernateEntityManagerHelper.getSession(getEntityManager());

    Criteria crit = ses.createCriteria(CloudUsage.class);
    ProjectionList proList = Projections.projectionList();
    proList.add(Projections.sum(CloudUsage.SERVERS_TOTAL_PROPERTY));
    proList.add(Projections.sum(CloudUsage.SERVERS_RUNNING_PROPERTY));
    proList.add(Projections.sum(CloudUsage.STORAGE_TOTAL_PROPERTY));
    // proList.add(Projections.sum(CloudUsage.STORAGE_RESERVED_PROPERTY));
    proList.add(Projections.sum(CloudUsage.STORAGE_USED_PROPERTY));
    proList.add(Projections.sum(CloudUsage.PUBLIC_I_PS_TOTAL_PROPERTY));
    // proList.add(Projections.sum(CloudUsage.PUBLIC_I_PS_RESERVED_PROPERTY));
    proList.add(Projections.sum(CloudUsage.PUBLIC_I_PS_USED_PROPERTY));
    proList.add(Projections.sum(CloudUsage.V_MACHINES_TOTAL_PROPERTY));
    proList.add(Projections.sum(CloudUsage.V_MACHINES_RUNNING_PROPERTY));
    proList.add(Projections.sum(CloudUsage.V_CPU_TOTAL_PROPERTY));
    // proList.add(Projections.sum(CloudUsage.V_CPU_RESERVED_PROPERTY));
    proList.add(Projections.sum(CloudUsage.V_CPU_USED_PROPERTY));
    proList.add(Projections.sum(CloudUsage.V_MEMORY_TOTAL_PROPERTY));
    // proList.add(Projections.sum(CloudUsage.V_MEMORY_RESERVED_PROPERTY));
    proList.add(Projections.sum(CloudUsage.V_MEMORY_USED_PROPERTY));
    proList.add(Projections.sum(CloudUsage.V_STORAGE_TOTAL_PROPERTY));
    // proList.add(Projections.sum(CloudUsage.V_STORAGE_RESERVED_PROPERTY));
    proList.add(Projections.sum(CloudUsage.V_STORAGE_USED_PROPERTY));
    proList.add(Projections.sum(CloudUsage.NUM_USERS_CREATED_PROPERTY));
    proList.add(Projections.sum(CloudUsage.NUM_VDC_CREATED_PROPERTY));
    proList.add(Projections.sum(CloudUsage.NUM_ENTERPRISES_CREATED_PROPERTY));

    crit.setProjection(proList);/*from ww  w  . j ava 2  s . c  o  m*/
    Object[] obj = (Object[]) crit.uniqueResult(); // Returns Object[] ->
    CloudUsage result = new CloudUsage();

    int cont = 0;
    result.setServersTotal((Long) obj[cont++]);
    result.setServersRunning((Long) obj[cont++]);
    result.setStorageTotal((Long) obj[cont++]);
    // result.setStorageReserved((Long) obj[cont++]);
    result.setStorageUsed((Long) obj[cont++]);
    result.setPublicIPsTotal((Long) obj[cont++]);
    // result.setPublicIPsReserved((Long) obj[cont++]);
    result.setPublicIPsUsed((Long) obj[cont++]);
    result.setVirtualMachinesTotal((Long) obj[cont++]);
    result.setVirtualMachinesRunning((Long) obj[cont++]);
    result.setVirtualCpuTotal((Long) obj[cont++]);
    // result.setVirtualCpuReserved((Long) obj[cont++]);
    result.setVirtualCpuUsed((Long) obj[cont++]);
    result.setVirtualMemoryTotal((Long) obj[cont++]);
    // result.setVirtualMemoryReserved((Long) obj[cont++]);
    result.setVirtualMemoryUsed((Long) obj[cont++]);
    result.setVirtualStorageTotal((Long) obj[cont++]);
    // result.setVirtualStorageReserved((Long) obj[cont++]);
    result.setVirtualStorageUsed((Long) obj[cont++]);
    result.setNumUsersCreated((Long) obj[cont++]);
    result.setNumVdcCreated((Long) obj[cont++]);
    result.setNumEnterprisesCreated((Long) obj[cont++]);

    return result;
}

From source file:com.abssh.util.GenericDao.java

License:Apache License

/**
 * countCriteria.//from ww  w .  ja va  2  s . c  o m
 */
@SuppressWarnings("unchecked")
protected int sumCriteriaResult(final String propertyName, final Criteria c) {
    CriteriaImpl impl = (CriteriaImpl) c;

    // Projection?ResultTransformer?OrderBy??,??Sum?
    Projection projection = impl.getProjection();
    ResultTransformer transformer = impl.getResultTransformer();

    List<CriteriaImpl.OrderEntry> orderEntries = null;
    try {
        orderEntries = (List) ReflectionUtils.getFieldValue(impl, "orderEntries");
        ReflectionUtils.setFieldValue(impl, "orderEntries", new ArrayList());
    } catch (Exception e) {
        logger.error("can not throw Exception:{}", e.getMessage());
    }

    // Sum
    Integer sum = (Integer) c.setProjection(Projections.sum(propertyName)).uniqueResult();

    // ?Projection,ResultTransformerOrderBy??
    c.setProjection(projection);

    if (projection == null) {
        c.setResultTransformer(CriteriaSpecification.ROOT_ENTITY);
    }
    if (transformer != null) {
        c.setResultTransformer(transformer);
    }
    try {
        ReflectionUtils.setFieldValue(impl, "orderEntries", orderEntries);
    } catch (Exception e) {
        logger.error("can not throw Exception:{}", e.getMessage());
    }

    return sum == null ? 0 : sum;
}

From source file:com.ar.dev.tierra.api.dao.impl.ChartDAOImpl.java

@Override
public List<Chart> getDineroVendedores(int idVendedor) {
    Calendar calendarInitial = Calendar.getInstance();
    Calendar calendarClosing = Calendar.getInstance();
    calendarInitial.set(Calendar.HOUR_OF_DAY, 0);
    calendarInitial.set(Calendar.MINUTE, 0);
    calendarInitial.set(Calendar.SECOND, 0);
    calendarInitial.set(Calendar.MILLISECOND, 0);
    Date fromDate = calendarInitial.getTime();
    calendarClosing.set(Calendar.HOUR_OF_DAY, 23);
    calendarClosing.set(Calendar.MINUTE, 59);
    calendarClosing.set(Calendar.SECOND, 59);
    calendarClosing.set(Calendar.MILLISECOND, 59);
    Date toDate = calendarClosing.getTime();
    int days = 0;
    List<Chart> chartVenta = new ArrayList<>();
    while (days <= 6) {
        Chart chart = new Chart();
        Criteria facturas = getSession().createCriteria(Factura.class);
        facturas.add(Restrictions.like("estado", "CONFIRMADO"));
        facturas.add(Restrictions.between("fechaCreacion", fromDate, toDate));
        Criteria vendedorFactura = facturas.createCriteria("idVendedor");
        vendedorFactura.add(Restrictions.eq("idUsuario", idVendedor));
        facturas.setProjection(Projections.sum("total"));
        BigDecimal counter = (BigDecimal) facturas.uniqueResult();
        if (counter != null) {
            chart.setValue(counter.intValue());
        } else {/*www.j a va2s . co  m*/
            chart.setValue(0);
        }
        chart.setDate(fromDate);
        chartVenta.add(chart);
        calendarInitial.add(Calendar.DAY_OF_MONTH, -1);
        fromDate = calendarInitial.getTime();
        calendarClosing.add(Calendar.DAY_OF_MONTH, -1);
        toDate = calendarClosing.getTime();
        days++;
    }
    return chartVenta;
}

From source file:com.ar.dev.tierra.api.dao.impl.ChartDAOImpl.java

@Override
public List<Chart> getMontoMedioPago(int idMedioPago) {
    Calendar calendarInitial = Calendar.getInstance();
    Calendar calendarClosing = Calendar.getInstance();
    calendarInitial.set(Calendar.HOUR_OF_DAY, 0);
    calendarInitial.set(Calendar.MINUTE, 0);
    calendarInitial.set(Calendar.SECOND, 0);
    calendarInitial.set(Calendar.MILLISECOND, 0);
    Date fromDate = calendarInitial.getTime();
    calendarClosing.set(Calendar.HOUR_OF_DAY, 23);
    calendarClosing.set(Calendar.MINUTE, 59);
    calendarClosing.set(Calendar.SECOND, 59);
    calendarClosing.set(Calendar.MILLISECOND, 59);
    Date toDate = calendarClosing.getTime();
    int days = 0;
    List<Chart> chartMedioPago = new ArrayList<>();
    while (days <= 6) {
        Chart chart = new Chart();
        Criteria metodo = getSession().createCriteria(MetodoPagoFactura.class);
        metodo.add(Restrictions.eq("estado", true));
        Criteria planPago = metodo.createCriteria("planPago");
        Criteria tarjeta = planPago.createCriteria("tarjeta");
        Criteria medioPago = tarjeta.createCriteria("medioPago");
        medioPago.add(Restrictions.eq("idMedioPago", idMedioPago));
        metodo.add(Restrictions.between("fechaCreacion", fromDate, toDate));
        metodo.setProjection(Projections.sum("montoPago"));
        BigDecimal counter = (BigDecimal) metodo.uniqueResult();
        if (counter != null) {
            chart.setValue(counter.intValue());
        } else {/*from w  w w.  java2s .  c om*/
            chart.setValue(0);
        }
        chart.setDate(fromDate);
        chartMedioPago.add(chart);
        calendarInitial.add(Calendar.DAY_OF_MONTH, -1);
        fromDate = calendarInitial.getTime();
        calendarClosing.add(Calendar.DAY_OF_MONTH, -1);
        toDate = calendarClosing.getTime();
        days++;
    }
    return chartMedioPago;
}

From source file:com.bean.StatisticBean.java

public LineChartModel getStatisticViewInYear() {
    LineChartModel combinedModel = new LineChartModel();

    BarChartSeries boys = new BarChartSeries();
    boys.setLabel("Post");

    Date now = new Date();
    int year = yearStatisticViewInYear == 0 ? now.getYear() : yearStatisticViewInYear;
    Dao dao = new Dao();
    //1/*from w w w .  j a v  a  2  s.  c  o m*/
    Date from1 = new Date(year, 0, 1);
    Date to1 = new Date(year, 0, 31);
    Criterion logic1 = Restrictions.between("proCreateDate", from1, to1);
    int count1 = dao.getByCondition(Property.class, logic1).size();
    Criteria c = dao.createCriteria(Property.class);
    c.add(Restrictions.between("proCreateDate", from1, to1));
    c.setProjection(Projections.sum("proHit"));
    Object o = c.uniqueResult();
    long view1 = (long) (o == null ? 0L : o);
    //2
    Date from2 = new Date(year, 1, 1);
    Date to2 = new Date(year, 1, 28);
    Criterion logic2 = Restrictions.between("proCreateDate", from2, to2);
    int count2 = dao.getByCondition(Property.class, logic2).size();
    Criteria c2 = dao.createCriteria(Property.class);
    c2.add(Restrictions.between("proCreateDate", from2, to2));
    c2.setProjection(Projections.sum("proHit"));
    Object o2 = c2.uniqueResult();
    long view2 = (long) ((o2 == null) ? 0L : o2);
    //3
    Date from3 = new Date(year, 2, 1);
    Date to3 = new Date(year, 2, 31);
    Criterion logic3 = Restrictions.between("proCreateDate", from3, to3);
    int count3 = dao.getByCondition(Property.class, logic3).size();
    Criteria c3 = dao.createCriteria(Property.class);
    c3.add(Restrictions.between("proCreateDate", from3, to3));
    c3.setProjection(Projections.sum("proHit"));
    Object o3 = c3.uniqueResult();
    long view3 = (long) ((o3 == null) ? 0L : o3);
    //4
    Date from4 = new Date(year, 3, 1);
    Date to4 = new Date(year, 3, 30);
    Criterion logic4 = Restrictions.between("proCreateDate", from4, to4);
    int count4 = dao.getByCondition(Property.class, logic4).size();
    Criteria c4 = dao.createCriteria(Property.class);
    c4.add(Restrictions.between("proCreateDate", from4, to4));
    c4.setProjection(Projections.sum("proHit"));
    Object o4 = c4.uniqueResult();
    long view4 = (long) ((o4 == null) ? 0L : o4);
    //5
    Date from5 = new Date(year, 4, 1);
    Date to5 = new Date(year, 4, 31);
    Criterion logic5 = Restrictions.between("proCreateDate", from5, to5);
    int count5 = dao.getByCondition(Property.class, logic5).size();
    Criteria c5 = dao.createCriteria(Property.class);
    c5.add(Restrictions.between("proCreateDate", from5, to5));
    c5.setProjection(Projections.sum("proHit"));
    Object o5 = c5.uniqueResult();
    long view5 = (long) ((o5 == null) ? 0L : o5);
    //6
    Date from6 = new Date(year, 5, 1);
    Date to6 = new Date(year, 5, 30);
    Criterion logic6 = Restrictions.between("proCreateDate", from6, to6);
    int count6 = dao.getByCondition(Property.class, logic6).size();
    Criteria c6 = dao.createCriteria(Property.class);
    c6.add(Restrictions.between("proCreateDate", from6, to6));
    c6.setProjection(Projections.sum("proHit"));
    Object o6 = c6.uniqueResult();
    long view6 = (long) ((o6 == null) ? 0L : o6);
    //7
    Date from7 = new Date(year, 6, 1);
    Date to7 = new Date(year, 6, 31);
    Criterion logic7 = Restrictions.between("proCreateDate", from7, to7);
    int count7 = dao.getByCondition(Property.class, logic7).size();
    Criteria c7 = dao.createCriteria(Property.class);
    c7.add(Restrictions.between("proCreateDate", from7, to7));
    c7.setProjection(Projections.sum("proHit"));
    Object o7 = c7.uniqueResult();
    long view7 = (long) ((o7 == null) ? 0L : o7);
    //8
    Date from8 = new Date(year, 7, 1);
    Date to8 = new Date(year, 7, 31);
    Criterion logic8 = Restrictions.between("proCreateDate", from8, to8);
    int count8 = dao.getByCondition(Property.class, logic8).size();
    Criteria c8 = dao.createCriteria(Property.class);
    c8.add(Restrictions.between("proCreateDate", from8, to8));
    c8.setProjection(Projections.sum("proHit"));
    Object o8 = c8.uniqueResult();
    long view8 = (long) ((o8 == null) ? 0L : o8);
    //9
    Date from9 = new Date(year, 8, 1);
    Date to9 = new Date(year, 8, 30);
    Criterion logic9 = Restrictions.between("proCreateDate", from9, to9);
    int count9 = dao.getByCondition(Property.class, logic9).size();
    Criteria c9 = dao.createCriteria(Property.class);
    c9.add(Restrictions.between("proCreateDate", from9, to9));
    c9.setProjection(Projections.sum("proHit"));
    Object o9 = c9.uniqueResult();
    long view9 = (long) ((o9 == null) ? 0L : o9);
    //10
    Date from10 = new Date(year, 9, 1);
    Date to10 = new Date(year, 9, 31);
    Criterion logic10 = Restrictions.between("proCreateDate", from10, to10);
    int count10 = dao.getByCondition(Property.class, logic10).size();
    Criteria c10 = dao.createCriteria(Property.class);
    c10.add(Restrictions.between("proCreateDate", from10, to10));
    c10.setProjection(Projections.sum("proHit"));
    Object o10 = c10.uniqueResult();
    long view10 = (long) ((o10 == null) ? 0L : o10);
    //11
    Date from11 = new Date(year, 10, 1);
    Date to11 = new Date(year, 10, 30);
    Criterion logic11 = Restrictions.between("proCreateDate", from11, to11);
    int count11 = dao.getByCondition(Property.class, logic11).size();
    Criteria c11 = dao.createCriteria(Property.class);
    c11.add(Restrictions.between("proCreateDate", from11, to11));
    c11.setProjection(Projections.sum("proHit"));
    Object o11 = c11.uniqueResult();
    long view11 = (long) ((o11 == null) ? 0L : o11);
    //12
    Date from12 = new Date(year, 11, 1);
    Date to12 = new Date(year, 11, 31);
    Criterion logic12 = Restrictions.between("proCreateDate", from12, to12);
    int count12 = dao.getByCondition(Property.class, logic12).size();
    Criteria c12 = dao.createCriteria(Property.class);
    c12.add(Restrictions.between("proCreateDate", from12, to12));
    c12.setProjection(Projections.sum("proHit"));
    Object o12 = c12.uniqueResult();
    long view12 = (long) ((o12 == null) ? 0L : o12);

    boys.set("01", count1);
    boys.set("02", count2);
    boys.set("03", count3);
    boys.set("04", count4);
    boys.set("05", count5);
    boys.set("06", count6);
    boys.set("07", count7);
    boys.set("08", count8);
    boys.set("09", count9);
    boys.set("10", count10);
    boys.set("11", count11);
    boys.set("12", count12);

    LineChartSeries girls = new LineChartSeries();
    girls.setLabel("View");
    girls.setYaxis(AxisType.Y2);
    girls.set("01", view1);
    girls.set("02", view2);
    girls.set("03", view3);
    girls.set("04", view4);
    girls.set("05", view5);
    girls.set("06", view6);
    girls.set("07", view7);
    girls.set("08", view8);
    girls.set("09", view9);
    girls.set("10", view10);
    girls.set("11", view11);
    girls.set("12", view12);

    combinedModel.addSeries(boys);
    combinedModel.addSeries(girls);

    combinedModel.setTitle("Statistic view of post in year");
    combinedModel.setLegendPosition("ne");
    combinedModel.setMouseoverHighlight(true);
    combinedModel.setShowDatatip(true);
    combinedModel.setShowPointLabels(true);

    combinedModel.getAxes().put(AxisType.X, new CategoryAxis("Month"));
    combinedModel.getAxes().put(AxisType.X2, new CategoryAxis("Period"));

    Axis yAxis = combinedModel.getAxis(AxisType.Y);
    yAxis.setMin(0);
    yAxis.setMax(200);

    Axis y2Axis = new LinearAxis("Number");
    y2Axis.setMin(0);
    y2Axis.setMax(100000);

    combinedModel.getAxes().put(AxisType.Y2, y2Axis);

    return combinedModel;
}

From source file:com.cai310.lottery.service.lottery.keno.impl.KenoServiceImpl.java

/**
 * ?//w  ww  .  ja  v a  2s.c  om
 * 
 * @param periodId
 * @return
 */
@Transactional(readOnly = true)
public Integer calAllSaleCount(Long periodId) {
    Class<S> clazz = ReflectionUtils.getSuperClassGenricType(getClass(), 1);
    DetachedCriteria criteria = DetachedCriteria.forClass(clazz);
    criteria.add(Restrictions.eq("periodId", periodId));
    criteria.add(Restrictions.eq("state", SchemeState.SUCCESS));
    criteria.setProjection(Projections.sum("schemeCost"));
    List<Integer> resultList = schemeDao.findByDetachedCriteria(criteria);
    if (null != resultList && !resultList.isEmpty()) {
        Integer count = resultList.get(0);
        if (null != count) {
            return count.intValue();
        } else {
            return 0;
        }
    } else {
        return 0;
    }
}

From source file:com.cai310.lottery.service.lottery.keno.impl.KenoServiceImpl.java

@Transactional(readOnly = true, propagation = Propagation.SUPPORTS)
public BigDecimal countSubscribedCost(Long schemeId, final Long userId) {
    final S scheme = getScheme(schemeId);
    return (BigDecimal) subscriptionDao.execute(new CriteriaExecuteCallBack() {
        public Object execute(Criteria criteria) {
            criteria.setProjection(Projections.sum("cost"));
            criteria.add(Restrictions.eq("schemeId", scheme.getId()));
            criteria.add(Restrictions.eq("userId", userId));
            criteria.add(Restrictions.eq("state", SubscriptionState.NORMAL));
            criteria.add(Restrictions.eq("lotteryType", scheme.getLotteryType()));
            return criteria.uniqueResult();
        }/*from w  w w  .  j av  a  2  s  .c o  m*/
    });
}