Example usage for org.hibernate.criterion Projections count

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

Introduction

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

Prototype

public static CountProjection count(String propertyName) 

Source Link

Document

A property value count projection

Usage

From source file:com.romeikat.datamessie.core.base.query.entity.execute.AbstractEntityQueryExecutor.java

License:Open Source License

public void applyCountProjection(final Criteria criteria, final String propertyName) {
    criteria.setProjection(Projections.count(propertyName));
}

From source file:com.sapienter.jbilling.server.invoice.db.InvoiceDAS.java

License:Open Source License

public Integer findLinesForPeriodByItem(Integer userId, Integer itemId, Date start, Date end) {
    Criteria criteria = getSession().createCriteria(InvoiceDTO.class);
    addUserCriteria(criteria, userId);/*from   ww  w  .j  a v  a 2s.  co  m*/
    addPeriodCriteria(criteria, start, end);
    addItemCriteria(criteria, itemId);
    criteria.setProjection(Projections.count("id"));
    return (Integer) criteria.uniqueResult();
}

From source file:com.sapienter.jbilling.server.invoice.db.InvoiceDAS.java

License:Open Source License

public Integer findLinesForPeriodByItemCategory(Integer userId, Integer categoryId, Date start, Date end) {
    Criteria criteria = getSession().createCriteria(InvoiceDTO.class);
    addUserCriteria(criteria, userId);//  w  w w.  ja  v a 2 s . c  o m
    addPeriodCriteria(criteria, start, end);
    addItemCategoryCriteria(criteria, categoryId);
    criteria.setProjection(Projections.count("id"));
    return (Integer) criteria.uniqueResult();
}

From source file:com.sapienter.jbilling.server.item.db.ItemTypeDAS.java

License:Open Source License

/**
 * Returns true if the given item type ID is in use.
 *
 * @param typeId type id//w  w w.ja  v  a2 s  .c  o  m
 * @return true if in use, false if not
 */
public boolean isInUse(Integer typeId) {
    Criteria criteria = getSession().createCriteria(getPersistentClass()).add(Restrictions.eq("id", typeId))
            .createAlias("items", "item").add(Restrictions.eq("item.deleted", 0)) // item type contains non-deleted items
            .setProjection(Projections.count("item.id"));

    criteria.setComment("ItemTypeDTO.isInUse");

    return (criteria.uniqueResult() != null && ((Integer) criteria.uniqueResult()) > 0);
}

From source file:com.sapienter.jbilling.server.process.db.ProcessRunUserDAS.java

License:Open Source License

private Integer findUsersCountByStatus(Integer processRunId, Integer status) {
    Criteria criteria = getSession().createCriteria(ProcessRunUserDTO.class)
            .add(Restrictions.eq("status", status)).add(Restrictions.eq("processRun.id", processRunId))
            .setProjection(Projections.count("user.id"));

    return (Integer) criteria.uniqueResult();
}

From source file:com.segundo.piso.daos.impl.DAOAttendenceImpl.java

@Override
@Transactional//from   w  w  w  .  j a  v  a 2 s  . co  m
public long getDaysUsed(int idStudent, int idMovement) {
    try {
        return (long) this.sessionFactory.getCurrentSession().createCriteria(Asistencia.class, "attendence")
                .createAlias("attendence.idAlumno", "student")
                .createAlias("attendence.idMovimiento", "movement")
                .setProjection(Projections.count("attendence.diasRestantes"))
                .add(Restrictions.eq("student.idAlumno", idStudent))
                .add(Restrictions.eq("movement.idMovimiento", idMovement)).uniqueResult();
    } catch (NoResultException | NullPointerException e) {
        //log
        return 0;
    }
}

From source file:com.smartitengineering.dao.impl.hibernate.AbstractDAO.java

License:Open Source License

@SuppressWarnings("unchecked")
private void processCriteria(Criteria criteria, String element, QueryParameter parameter) {
    switch (parameter.getParameterType()) {
    case PARAMETER_TYPE_PROPERTY: {
        criteria.add(getCriterion(element, parameter));
        return;/* www .  jav  a 2 s  . co m*/
    }
    case PARAMETER_TYPE_ORDER_BY: {
        final Order order;
        SimpleNameValueQueryParameter<com.smartitengineering.dao.common.queryparam.Order> queryParameter = QueryParameterCastHelper.SIMPLE_PARAM_HELPER
                .cast(parameter);
        com.smartitengineering.dao.common.queryparam.Order requestedOrder = queryParameter.getValue();
        switch (requestedOrder) {
        case ASC: {
            order = Order.asc(element);
            break;
        }
        case DESC: {
            order = Order.desc(element);
            break;
        }
        default: {
            order = null;
            break;
        }
        }
        if (order != null) {
            criteria.addOrder(order);
        }
        return;
    }
    case PARAMETER_TYPE_MAX_RESULT: {
        ValueOnlyQueryParameter<Integer> queryParameter = QueryParameterCastHelper.VALUE_PARAM_HELPER
                .cast(parameter);
        criteria.setMaxResults(queryParameter.getValue());
        return;
    }
    case PARAMETER_TYPE_FIRST_RESULT: {
        ValueOnlyQueryParameter<Integer> queryParameter = QueryParameterCastHelper.VALUE_PARAM_HELPER
                .cast(parameter);
        criteria.setFirstResult(queryParameter.getValue());
        return;
    }
    case PARAMETER_TYPE_DISJUNCTION: {
        processDisjunction(criteria, parameter);
        return;
    }
    case PARAMETER_TYPE_CONJUNCTION: {
        processConjunction(criteria, parameter);
        return;
    }
    case PARAMETER_TYPE_NESTED_PROPERTY: {
        processNestedParameter(criteria, element, parameter);
        return;
    }
    case PARAMETER_TYPE_COUNT: {
        final Projection countProjection = Projections.count(element);
        setProjection(criteria, countProjection);
        return;
    }
    case PARAMETER_TYPE_ROW_COUNT: {
        final Projection rowCount = Projections.rowCount();
        setProjection(criteria, rowCount);
        return;
    }
    case PARAMETER_TYPE_SUM: {
        final AggregateProjection sum = Projections.sum(element);
        setProjection(criteria, sum);
        return;
    }
    case PARAMETER_TYPE_MAX: {
        final AggregateProjection max = Projections.max(element);
        setProjection(criteria, max);
        return;
    }
    case PARAMETER_TYPE_MIN: {
        final AggregateProjection min = Projections.min(element);
        setProjection(criteria, min);
        return;
    }
    case PARAMETER_TYPE_AVG: {
        final AggregateProjection avg = Projections.avg(element);
        setProjection(criteria, avg);
        return;
    }
    case PARAMETER_TYPE_GROUP_BY: {
        final PropertyProjection groupProperty = Projections.groupProperty(element);
        setProjection(criteria, groupProperty);
        return;
    }
    case PARAMETER_TYPE_COUNT_DISTINCT: {
        final CountProjection countDistinct = Projections.countDistinct(element);
        setProjection(criteria, countDistinct);
        return;
    }
    case PARAMETER_TYPE_DISTINCT_PROP: {
        final Projection distinct = Projections.distinct(Projections.property(element));
        setProjection(criteria, distinct);
        return;
    }
    case PARAMETER_TYPE_UNIT_PROP: {
        final PropertyProjection property = Projections.property(element);
        setProjection(criteria, property);
        return;
    }
    }
}

From source file:com.tysanclan.site.projectewok.entities.dao.hibernate.ForumPostDAOImpl.java

License:Open Source License

@Override
public int getUnreadSize(User user) {
    Criteria criteria = getSession().createCriteria(User.class);
    criteria.add(Restrictions.eq("id", user.getId()));
    criteria.setProjection(Projections.count("unreadForumPosts"));
    Number number = (Number) criteria.uniqueResult();
    return number.intValue();
}

From source file:de.iew.sketchpad.persistence.hibernate.HbmPolygonDaoImpl.java

License:Apache License

public long getSegmentCount(long polygonId) {
    Criteria criteria = createCriteria();

    criteria.setProjection(Projections.count("segs.id")).createAlias("segments", "segs")
            .add(Restrictions.eq("id", polygonId));

    return (Long) criteria.uniqueResult();
}

From source file:de.iteratec.iteraplan.persistence.dao.GenericBaseDAO.java

License:Open Source License

/** {@inheritDoc} */
public boolean doesObjectWithDifferentIdExist(final T identifier, final String name) {
    Assert.notNull(name);/*from   ww  w  . ja  v a2 s.  c o m*/

    HibernateCallback<Long> callback = new HibernateCallback<Long>() {
        public Long doInHibernate(Session session) {
            Criteria c = session.createCriteria(getPersistentClass());
            c.setProjection(Projections.count(getNameAttribute()));
            c.add(Restrictions.eq(getNameAttribute(), name.trim()).ignoreCase());
            if (identifier != null) {
                c.add(Restrictions.ne("id", identifier));
            }
            Object result = c.uniqueResult();

            // if Hibernate returns an Integer, convert it to long
            if (result instanceof Integer) {
                return Long.valueOf(((Integer) result).longValue());
            }
            // otherwise we expect a Long to be returned
            return (Long) result;
        }
    };

    Long count = getHibernateTemplate().execute(callback);

    return count.intValue() > 0 ? true : false;
}