Example usage for org.hibernate.criterion Projections countDistinct

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

Introduction

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

Prototype

public static CountProjection countDistinct(String propertyName) 

Source Link

Document

A distinct property value count projection

Usage

From source file:org.molasdin.wbase.hibernate.cursor.BasicHibernateCursor.java

License:Apache License

@Override
public Long totalCallback(Session session) {
    DetachedCriteria criteria = searchSpecification().query();
    if (searchSpecification().distinctProperty() != null) {
        criteria.setProjection(Projections.countDistinct(searchSpecification().distinctProperty()));
    } else {/*  www . j  a v  a  2s.  co m*/
        criteria.setProjection(Projections.rowCount());
    }
    criteria.add(populateFilters(searchSpecification().filterModes()));
    return (Long) criteria.getExecutableCriteria(session).uniqueResult();
}

From source file:org.n52.sos.ds.hibernate.dao.AbstractSpatialFilteringProfileDAO.java

License:Open Source License

/**
 * Query the count of SpatialFilteringProfile contained in the database
 * // w  w  w  .j  ava 2  s. c  o m
 * @param clazz
 *            Entity to create Criteria for
 * @param session
 *            Hibernate session
 * @return Count of SpatialFilteringProfile contained in the database
 */
@SuppressWarnings("rawtypes")
protected Long getSpatialFilteringProfileCount(Class clazz, Session session) {
    Criteria criteria = session.createCriteria(clazz);
    criteria.setProjection(Projections.countDistinct(AbstractSpatialFilteringProfile.OBSERVATION));
    LOGGER.debug("QUERY hasSpatialFilteringProfileValues(): {}", HibernateHelper.getSqlString(criteria));
    return (Long) criteria.uniqueResult();
}

From source file:org.openmrs.api.db.hibernate.HibernateEncounterDAO.java

License:Mozilla Public License

/**
 * @see org.openmrs.api.db.EncounterDAO#getCountOfEncounters(java.lang.String,
 *      java.lang.Integer, boolean)//from ww w  . j av a 2  s. c  o m
 */
@Override
public Long getCountOfEncounters(String query, Integer patientId, boolean includeVoided) {
    Criteria criteria = createEncounterByQueryCriteria(query, patientId, includeVoided, false);

    criteria.setProjection(Projections.countDistinct("enc.encounterId"));
    return (Long) criteria.uniqueResult();
}

From source file:org.openmrs.api.db.hibernate.HibernateProviderDAO.java

License:Mozilla Public License

/**
 * @see org.openmrs.api.db.ProviderDAO#getCountOfProviders(String, boolean)
 *//*from   w w  w.ja  va  2 s.co m*/
@Override
public Long getCountOfProviders(String name, boolean includeRetired) {
    Criteria criteria = prepareProviderCriteria(name, includeRetired);
    criteria.setProjection(Projections.countDistinct("providerId"));
    return (Long) criteria.uniqueResult();
}

From source file:org.openmrs.api.db.hibernate.HibernateProviderDAO.java

License:Mozilla Public License

/**
 * @see org.openmrs.api.db.ProviderDAO#getProviderByIdentifier(java.lang.String)
 *//* w w  w.j a  v  a2  s. co  m*/
@Override
public boolean isProviderIdentifierUnique(Provider provider) throws DAOException {

    Criteria criteria = getSession().createCriteria(Provider.class);
    criteria.add(Restrictions.eq("identifier", provider.getIdentifier()));
    if (provider.getProviderId() != null) {
        criteria.add(Restrictions.not(Restrictions.eq("providerId", provider.getProviderId())));
    }
    criteria.setProjection(Projections.countDistinct("providerId"));

    return (Long) criteria.uniqueResult() == 0L;
}

From source file:org.openmrs.module.metadatasharing.api.db.hibernate.HibernateCompatibility1_9.java

License:Open Source License

@Override
public Integer getConceptsCount(boolean includeRetired, String filter) {
    Criteria criteria = sessionFactory.getCurrentSession().createCriteria(ConceptWord.class, "conceptWord");

    filterConceptWords(criteria, includeRetired, filter);

    criteria.setProjection(Projections.countDistinct("concept"));

    return ((Number) criteria.uniqueResult()).intValue();
}

From source file:org.openmrs.module.metadatasharing.api.db.hibernate.HibernateMetadataDAO.java

License:Open Source License

/**
 * @see org.openmrs.module.metadatasharing.api.db.MetadataDAO#getConceptsCount(boolean,
 *      java.lang.String)//from   www .  j  a va2  s  .c om
 */
@Override
public int getConceptsCount(boolean includeRetired, String filter) {
    if (StringUtils.isEmpty(filter)) {
        Criteria criteria = sessionFactory.getCurrentSession().createCriteria(Concept.class);

        if (!includeRetired) {
            criteria.add(Restrictions.eq("retired", includeRetired));
        }

        criteria.setProjection(Projections.rowCount());

        return ((Number) criteria.uniqueResult()).intValue();
    }

    boolean incrementNeeded = false;
    if (!StringUtils.isEmpty(filter)) {
        Concept concept = Context.getConceptService().getConceptByUuid(filter);
        if (concept != null) {
            if (concept.isRetired() && includeRetired) {
                return 1;
            } else {
                return 0;
            }
        }
        concept = filterById(filter);
        if (concept != null) {
            incrementNeeded = true;
        }
    }

    Criteria criteria = sessionFactory.getCurrentSession().createCriteria(ConceptWord.class, "conceptWord");

    filterConceptWords(criteria, includeRetired, filter);

    criteria.setProjection(Projections.countDistinct("concept"));

    Integer resultsCount = ((Number) criteria.uniqueResult()).intValue();
    if (incrementNeeded) {
        return resultsCount + 1;
    } else {
        return resultsCount;
    }
}

From source file:org.openmrs.module.patientaccesscontrol.api.db.hibernate.HibernatePatientAccessControlDAO.java

License:Open Source License

/**
 * @see PatientAccessControlDAO#getCountOfPatients(String, String, List, boolean, boolean)
 *//*from w  w  w  . ja v a 2  s  . co  m*/
@Override
public Long getCountOfPatients(String name, String identifier, List<PatientIdentifierType> identifierTypes,
        boolean matchIdentifierExactly, Collection<Integer> includePatients,
        Collection<Integer> excludePatients) {
    if (includePatients != null && includePatients.isEmpty()) {
        return 0L;
    }

    Criteria criteria = createPatientCriteria(includePatients, excludePatients, null, false, false);

    criteria = new PatientSearchCriteria(sessionFactory, criteria)
            .prepareCriteria(name, identifier, identifierTypes, matchIdentifierExactly, false)
            .setProjection(Projections.countDistinct("patientId"));

    return (Long) criteria.uniqueResult();
}

From source file:org.sakaiproject.assignment.impl.persistence.AssignmentRepositoryImpl.java

License:Educational Community License

@Override
public long countAssignmentSubmissions(String assignmentId, Boolean graded, Boolean hasSubmissionDate,
        Boolean userSubmission, List<String> userIds) {
    Criteria criteria = sessionFactory.getCurrentSession().createCriteria(AssignmentSubmission.class)
            .setProjection(Projections.countDistinct("id")).add(Restrictions.eq("assignment.id", assignmentId))
            .add(Restrictions.eq("submitted", Boolean.TRUE)).createAlias("submitters", "s");

    if (graded != null) {
        criteria.add(Restrictions.eq("graded", graded));
    }//from  w  w  w  .j av  a 2s  .co  m
    if (hasSubmissionDate != null) {
        criteria.add(hasSubmissionDate ? Restrictions.isNotNull("dateSubmitted")
                : Restrictions.isNull("dateSubmitted"));
    }
    if (userSubmission != null) {
        criteria.add(Restrictions.eq("userSubmission", userSubmission));
    }
    if (userIds != null) {
        if (userIds.isEmpty()) {
            return 0; // if we have an empty list then we return always return 0
        } else {
            criteria.add(HibernateCriterionUtils.CriterionInRestrictionSplitter("s.submitter", userIds));
        }
    }
    return ((Number) criteria.uniqueResult()).longValue();
}

From source file:org.sculptor.framework.accessimpl.jpahibernate.JpaHibFindByConditionAccessImpl.java

License:Apache License

public void executeCount() {
    final Criteria criteria = createCriteria();
    prepareCache(criteria);/*from   w  w w. jav a  2 s .  c om*/

    // Prepare where clause
    addSubCriterias(criteria);
    addConditionalCriteria(criteria);

    addResultTransformer(criteria);

    if (realDistinctRoot) {
        criteria.setProjection(Projections.countDistinct(Criteria.ROOT_ALIAS + ".id"));
    } else {
        criteria.setProjection(Projections.count(Criteria.ROOT_ALIAS + ".id"));
    }
    rowCount = (Long) criteria.uniqueResult();
}