List of usage examples for org.hibernate.criterion Projections countDistinct
public static CountProjection countDistinct(String propertyName)
From source file:com.rta.vsd.data.service.impl.ViolationDataServiceImpl.java
/** * /*from w w w .ja v a 2s . co m*/ * get Count For Violations with tests By TrafficFileNumber * getViolationsWithTestsByTrafficFileNumber(dsContext, retrieveArabicData, trafficFileNumber) * getCountForViolationsWithTestsByTrafficFileNumber(dsContext, retrieveArabicData, trafficFileNumber) * getViolationsWithTestsByTrafficFileNumber(dsContext, retrieveArabicData, trafficFileNumber, maxResults, firstResult) * @author Eldon Barrows * @param dsContext * @param retrieveArabicData * @param trafficFileNumber * @return List<Violation> * @throws VSDDataAccessException */ public Long getCountForViolationsWithTestsByTrafficFileNumber(final DataServiceContext dsContext, boolean retrieveArabicData, String trafficFileNumber) throws VSDDataAccessException { logger.info("getCountForViolationsWithTestsByTrafficFileNumber -- START"); Long violationsCount = new Long(0); try { Session session = (Session) dsContext.getInternalContext(); Criteria projectionCriteria = session.createCriteria(VsdViolation.class, "violation") .add(Restrictions.eq("violation.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("violation.vsdInspections", "i", Criteria.LEFT_JOIN, Restrictions.eq("i.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("i.vsdVehicleInfo", "vi", Criteria.LEFT_JOIN, Restrictions.eq("vi.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("vi.vsdOwnerInfos", "oi", Criteria.LEFT_JOIN, Restrictions.eq("oi.isDeleted", IDataService.BOOL_FALSE)) .add(Restrictions.eq("oi.trafficFileNumber", trafficFileNumber).ignoreCase()) .createCriteria("violation.vsdChannelDefects", "cd", Criteria.LEFT_JOIN, Restrictions.eq("cd.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("cd.vsdChannelDefectTests", "cdt", Criteria.LEFT_JOIN, Restrictions.eq("cdt.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("cdt.vsdChannelTest", "ct", Criteria.LEFT_JOIN, Restrictions.eq("ct.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("ct.vsdChannelPartInst", "cpi", Criteria.LEFT_JOIN, Restrictions.eq("cpi.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("ct.vsdTestType", "tt", Criteria.LEFT_JOIN, Restrictions.eq("tt.isDeleted", IDataService.BOOL_FALSE)) .setProjection(Projections.countDistinct("violation.violationId")) .addOrder(Order.desc("violation.reportedDate")); violationsCount = (Long) projectionCriteria.uniqueResult(); logger.debug("violationsCount : " + violationsCount); } catch (Exception ex) { logger.error("An error occured in getCountForViolationsWithTestsByTrafficFileNumber()"); logger.error(ex); throw new VSDDataAccessException(ex.getMessage(), ex); } logger.info("getCountForViolationsWithTestsByTrafficFileNumber -- END"); return violationsCount; }
From source file:com.rta.vsd.data.service.impl.ViolationDataServiceImpl.java
/** * /*w ww . j av a 2 s. c o m*/ * Get a list of violations from the vehicle plate details, severity level and violations status ids provided * * @author Eldon Barrows * @param dsContext * @param retrieveArabicData * @param plateDetails * @param severityLevels * @param violationStatusId * @return Long * @throws VSDDataAccessException */ public Long getViolationsByVehiclePlateSeverityLevelsAndViolationStatuses(DataServiceContext dsContext, boolean retrieveArabicData, VehiclePlate plateDetails, List<Long> severityLevels, List<Long> violationStatusIds) throws VSDDataAccessException { logger.info("getViolationsByVehiclePlateSeverityLevelsAndViolationStatuses -- START"); try { Session session = (Session) dsContext.getInternalContext(); Criteria crit = session.createCriteria(VsdViolation.class, "v") .add(Restrictions.eq("v.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("v.vsdInspections", "i", Criteria.LEFT_JOIN, Restrictions.eq("i.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("i.vsdVehicleInfo", "vi", Criteria.LEFT_JOIN, Restrictions.eq("vi.isDeleted", IDataService.BOOL_FALSE)) .add(Restrictions.eq("vi.vehiclePlateCategory", plateDetails.getPlateCategory()).ignoreCase()) .add(Restrictions.eq("vi.vehiclePlateCode", plateDetails.getPlateCode()).ignoreCase()) .add(Restrictions.eq("vi.vehiclePlateSource", plateDetails.getPlateSource()).ignoreCase()) .add(Restrictions.eq("vi.vehiclePlateNumber", plateDetails.getPlateNumber()).ignoreCase()) .createCriteria("v.vsdSeverityLevel", "sl", Criteria.LEFT_JOIN, Restrictions.eq("sl.isDeleted", IDataService.BOOL_FALSE)) .add(Restrictions.in("sl.severityLevel", severityLevels)) .createCriteria("v.vsdViolationStatus", "vs", Criteria.LEFT_JOIN, Restrictions.eq("vs.isDeleted", IDataService.BOOL_FALSE)) .add(Restrictions.in("vs.violationStatusId", violationStatusIds)) .setProjection(Projections.countDistinct("v.violationId")); Long count = (Long) crit.uniqueResult(); logger.info("getViolationsByVehiclePlateSeverityLevelsAndViolationStatuses -- END"); return count; } catch (Exception ex) { logger.error("An error occured in getViolationsByVehiclePlateSeverityLevelsAndViolationStatuses()"); throw new VSDDataAccessException(ex.getMessage(), ex); } }
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;//from w w w . j a v a 2 s. c o 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.square.adherent.noyau.dao.implementations.contrat.ContratDaoImpl.java
License:Open Source License
@Override public int countContratsByCriteres(CritereRechercheContratDto criteres) { final Criteria crit = createCriteriaByCriteres(criteres); crit.setProjection(Projections.countDistinct("id")); return Integer.valueOf(((Long) crit.uniqueResult()).toString()); }
From source file:com.square.core.dao.implementations.OpportuniteDaoImplementation.java
License:Open Source License
@Override public Integer countOpportunitesParCriteres(OpportuniteCriteresRechercheDto criteres) { final Criteria criteria = creerCriteria(criteres); criteria.setProjection(Projections.countDistinct("id")); return Integer.valueOf(criteria.uniqueResult().toString()); }
From source file:com.tysanclan.site.projectewok.entities.dao.hibernate.UserGameRealmDAOImpl.java
License:Open Source License
/** * @see com.tysanclan.site.projectewok.entities.dao.UserGameRealmDAO#countActivePlayers(com.tysanclan.site.projectewok.entities.Realm) *//*from w w w .j a v a 2s . c om*/ @Override public int countActivePlayers(Realm realm) { Criteria criteria = getSession().createCriteria(UserGameRealm.class); criteria.createAlias("user", "user"); criteria.add(Restrictions.in("user.rank", MemberUtil.getMemberRanks())); criteria.add(Restrictions.eq("realm", realm)); criteria.setProjection(Projections.countDistinct("user")); return ((Number) criteria.uniqueResult()).intValue(); }
From source file:com.tysanclan.site.projectewok.entities.dao.hibernate.UserGameRealmDAOImpl.java
License:Open Source License
@Override public int countActivePlayers(Game game) { Criteria criteria = getSession().createCriteria(UserGameRealm.class); criteria.add(Restrictions.eq("game", game)); criteria.setProjection(Projections.countDistinct("user")); return ((Number) criteria.uniqueResult()).intValue(); }
From source file:cz.zcu.kiv.eegdatabase.data.dao.SimpleFormLayoutDao.java
License:Apache License
@Override public int getFormsCount(Person owner) { DetachedCriteria criteria = DetachedCriteria.forClass(type); criteria.setProjection(Projections.distinct(Projections.countDistinct("formName"))); if (owner != null) criteria.add(Restrictions.eq("person.personId", owner.getPersonId())); return DataAccessUtils.intResult(getHibernateTemplate().findByCriteria(criteria)); }
From source file:edu.depaul.armada.dao.ContainerLogDaoHibernate.java
License:Open Source License
/** * Returns a List<Metric> from all of the containers with state fields greater-than * or equal to certain user defined parameters. * @param memThreshold long//from ww w. j av a2s . co m * @param cpuThreshold long * @param diskThreshold long * @param periodCountInHours int * @return List<Metric> */ @Override public List<Metric> getStateCounts(long memThreshold, long cpuThreshold, long diskThreshold, int periodCountInHours) { List<Metric> metrics = new ArrayList<Metric>(periodCountInHours); Calendar cal = Calendar.getInstance(); for (int i = 0; i < periodCountInHours; i++) { Date end = cal.getTime(); int hour = cal.get(Calendar.HOUR_OF_DAY); cal.add(Calendar.HOUR_OF_DAY, -1); Date start = cal.getTime(); Criteria criteria = newCriteria(); criteria.add(Restrictions.le("timestamp", end)); criteria.add(Restrictions.gt("timestamp", start)); // we don't want overlap here criteria.add(Restrictions.disjunction().add(Restrictions.ge("cpuUsed", cpuThreshold)) .add(Restrictions.ge("memUsed", memThreshold)).add(Restrictions.ge("diskUsed", diskThreshold))); criteria.setProjection(Projections.countDistinct("container")); int count = ((Long) criteria.uniqueResult()).intValue(); Metric temp = new Metric(); temp.setHour(hour); temp.setValue(count); metrics.add(temp); } Collections.reverse(metrics); // we want the current time to be the last hour return metrics; }
From source file:edu.depaul.armada.dao.ContainerLogDaoHibernate.java
License:Open Source License
/** * Returns a List<Metric> from all of the containers with data within a specified * amount of time./*from w w w .j av a2s . c o m*/ * @param periodInHours int * @return List<Metric> */ @Override public List<Metric> getContainerCounts(int periodInHours) { List<Metric> metrics = new ArrayList<Metric>(periodInHours); Calendar cal = Calendar.getInstance(); for (int i = 0; i < periodInHours; i++) { Date end = cal.getTime(); int hour = cal.get(Calendar.HOUR_OF_DAY); cal.add(Calendar.HOUR_OF_DAY, -1); Date start = cal.getTime(); Criteria criteria = newCriteria(); criteria.add(Restrictions.le("timestamp", end)); criteria.add(Restrictions.gt("timestamp", start)); // we don't want overlap here criteria.setProjection(Projections.countDistinct("container")); int count = ((Long) criteria.uniqueResult()).intValue(); Metric temp = new Metric(); temp.setHour(hour); temp.setValue(count); metrics.add(temp); } Collections.reverse(metrics); // we want the current time to be the last hour return metrics; }