List of usage examples for org.hibernate.criterion Projections countDistinct
public static CountProjection countDistinct(String propertyName)
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(); }