List of usage examples for org.hibernate.criterion Projections min
public static AggregateProjection min(String propertyName)
From source file:org.n52.sos.ds.hibernate.dao.series.AbstractSeriesObservationDAO.java
License:Open Source License
/** * Query the min time from series observations for series * //from ww w . ja v a2 s .co m * @param series * Series to get values for * @param session * Hibernate session * @return Min time from series observations */ public DateTime getMinSeriesObservationTime(Series series, Session session) { Criteria criteria = createCriteriaFor(getObservationTimeClass(), series, session); criteria.setProjection(Projections.min(SeriesObservationTime.PHENOMENON_TIME_START)); Object min = criteria.uniqueResult(); if (min != null) { return new DateTime(min, DateTimeZone.UTC); } return null; }
From source file:org.n52.sos.ds.hibernate.dao.series.AbstractSeriesValueTimeDAO.java
License:Open Source License
private void addMinMaxTimeProjection(Criteria c) { ProjectionList projectionList = Projections.projectionList(); projectionList.add(Projections.min(AbstractObservationTime.PHENOMENON_TIME_START)); projectionList.add(Projections.max(AbstractObservationTime.PHENOMENON_TIME_END)); projectionList.add(Projections.max(AbstractObservationTime.RESULT_TIME)); if (HibernateHelper.isColumnSupported(getSeriesValueTimeClass(), AbstractObservationTime.VALID_TIME_START) && HibernateHelper.isColumnSupported(getSeriesValueTimeClass(), AbstractObservationTime.VALID_TIME_END)) { projectionList.add(Projections.min(AbstractObservationTime.VALID_TIME_START)); projectionList.add(Projections.max(AbstractObservationTime.VALID_TIME_END)); }// w ww . jav a 2 s . com c.setProjection(projectionList); }
From source file:org.n52.sos.ds.hibernate.dao.series.SeriesObservationTimeDAO.java
License:Open Source License
/** * Create criteria to get min/max time values for a series * /*from w ww. java 2 s . co m*/ * @param series * Series to get time values for * @param session * Hibernate session * @return Criteria for time values */ public Criteria getMinMaxTimeCriteriaForSeriesGetDataAvailabilityDAO(Series series, Collection<String> offerings, Session session) { Criteria criteria = createCriteriaFor(getObservationTimeClass(), series, session); if (CollectionHelper.isNotEmpty(offerings)) { criteria.createCriteria(SeriesObservationTime.OFFERINGS) .add(Restrictions.in(Offering.IDENTIFIER, offerings)); } criteria.setProjection( Projections.projectionList().add(Projections.min(SeriesObservationTime.PHENOMENON_TIME_START)) .add(Projections.max(SeriesObservationTime.PHENOMENON_TIME_END))); return criteria; }
From source file:org.n52.sos.ds.hibernate.dao.TimeCreator.java
License:Open Source License
/** * Add min/max projection to criteria/* w w w . j ava 2 s .c o m*/ * * @param criteria * Hibernate Criteria to add projection * @param minMax * Min/Max identifier * @param property * Property to apply projection to */ public void addMinMaxProjection(Criteria criteria, MinMax minMax, String property) { // TODO move this to a better location, maybe with Java 8 in an own Interface with Multiple Inheritance switch (minMax) { case MIN: criteria.setProjection(Projections.min(property)); break; case MAX: criteria.setProjection(Projections.max(property)); break; } }
From source file:org.n52.sos.ds.hibernate.GetDataAvailabilityDAO.java
License:Open Source License
/** * Query data availability information depending on supported functionality * //from w w w . jav a 2 s . com * @param req * GetDataAvailability request * @param session * Hibernate session * @return Data availability information * @throws OwsExceptionReport * If an error occurs */ private List<?> queryDataAvailabilityValues(GetDataAvailabilityRequest req, Session session) throws OwsExceptionReport { // check is named queries are supported if (checkForNamedQueries(req, session)) { return executeNamedQuery(req, session); } // check if series mapping is supporte else if (EntitiyHelper.getInstance().isSeriesSupported()) { return querySeriesDataAvailabilities(req, session); } else { Criteria c = getDefaultObservationInfoCriteria(session); if (req.isSetFeaturesOfInterest()) { c.createCriteria(ObservationInfo.FEATURE_OF_INTEREST) .add(Restrictions.in(FeatureOfInterest.IDENTIFIER, req.getFeaturesOfInterest())); } if (req.isSetProcedures()) { c.createCriteria(ObservationInfo.PROCEDURE) .add(Restrictions.in(Procedure.IDENTIFIER, req.getProcedures())); } if (req.isSetObservedProperties()) { c.createCriteria(ObservationInfo.OBSERVABLE_PROPERTY) .add(Restrictions.in(ObservableProperty.IDENTIFIER, req.getObservedProperties())); } if (req.isSetOfferings()) { c.createCriteria(ObservationInfo.OFFERINGS) .add(Restrictions.in(Offering.IDENTIFIER, req.getOfferings())); } ProjectionList projectionList = Projections.projectionList(); projectionList.add(Projections.groupProperty(ObservationInfo.PROCEDURE)) .add(Projections.groupProperty(ObservationInfo.OBSERVABLE_PROPERTY)) .add(Projections.groupProperty(ObservationInfo.FEATURE_OF_INTEREST)) .add(Projections.min(ObservationInfo.PHENOMENON_TIME_START)) .add(Projections.max(ObservationInfo.PHENOMENON_TIME_END)); if (isShowCount(req)) { projectionList.add(Projections.rowCount()); } c.setProjection(projectionList); c.setResultTransformer(new DataAvailabilityTransformer(session)); LOGGER.debug("QUERY getDataAvailability(request): {}", HibernateHelper.getSqlString(c)); List<?> list = c.list(); if (isIncludeResultTime(req)) { for (Object o : list) { DataAvailability dataAvailability = (DataAvailability) o; dataAvailability.setResultTimes(getResultTimesFromObservation(dataAvailability, req, session)); } } return list; } }
From source file:org.n52.sos.ds.hibernate.util.HibernateCriteriaQueryUtilities.java
License:Open Source License
/** * Get min phenomenon time from observations * //from w ww. jav a2 s . c o m * @param session * Hibernate session * @return min time */ @Deprecated public static DateTime getMinPhenomenonTime(Session session) { Object min = session.createCriteria(Observation.class) .setProjection(Projections.min(Observation.PHENOMENON_TIME_START)) .add(Restrictions.eq(Observation.DELETED, false)).uniqueResult(); if (min != null) { return new DateTime(min); } return null; }
From source file:org.n52.sos.ds.hibernate.util.HibernateCriteriaQueryUtilities.java
License:Open Source License
/** * Get min result time from observations * // w ww . jav a 2s. c o m * @param session * Hibernate session * * @return min time */ @Deprecated public static DateTime getMinResultTime(Session session) { Object min = session.createCriteria(Observation.class) .setProjection(Projections.min(Observation.RESULT_TIME)) .add(Restrictions.eq(Observation.DELETED, false)).uniqueResult(); if (min != null) { return new DateTime(min); } return null; }
From source file:org.n52.sos.ds.hibernate.util.HibernateCriteriaQueryUtilities.java
License:Open Source License
/** * @param session//from w ww . j a v a2 s . c o m * the session * * @return the global getEqualRestiction bounding box over all observations, * or <tt>null</tt> */ @Deprecated public static TimePeriod getGlobalTemporalBoundingBox(Session session) { if (session != null) { Criteria criteria = session.createCriteria(Observation.class); criteria.add(Restrictions.eq(Observation.DELETED, false)); criteria.setProjection( Projections.projectionList().add(Projections.min(Observation.PHENOMENON_TIME_START)) .add(Projections.max(Observation.PHENOMENON_TIME_START)) .add(Projections.max(Observation.PHENOMENON_TIME_END))); Object temporalBoundingBox = criteria.uniqueResult(); if (temporalBoundingBox instanceof Object[]) { Object[] record = (Object[]) temporalBoundingBox; TimePeriod bBox = createTimePeriod((Timestamp) record[0], (Timestamp) record[1], (Timestamp) record[2]); return bBox; } } return null; }
From source file:org.n52.sos.ds.hibernate.util.HibernateCriteriaQueryUtilities.java
License:Open Source License
/** * @return a Map containing the bounding box for each offering *//* ww w.j ava 2 s .c o m*/ @Deprecated public static Map<String, TimePeriod> getTemporalBoundingBoxesForOfferings(Session session) { if (session != null) { Criteria criteria = session.createCriteria(Observation.class) .add(Restrictions.eq(Observation.DELETED, false)); criteria.createAlias(Observation.OFFERINGS, "off"); criteria.setProjection( Projections.projectionList().add(Projections.min(Observation.PHENOMENON_TIME_START)) .add(Projections.max(Observation.PHENOMENON_TIME_START)) .add(Projections.max(Observation.PHENOMENON_TIME_END)) .add(Projections.groupProperty("off." + Offering.IDENTIFIER))); List<?> temporalBoundingBoxes = criteria.list(); if (!temporalBoundingBoxes.isEmpty()) { HashMap<String, TimePeriod> temporalBBoxMap = new HashMap<String, TimePeriod>( temporalBoundingBoxes.size()); for (Object recordObj : temporalBoundingBoxes) { if (recordObj instanceof Object[]) { Object[] record = (Object[]) recordObj; TimePeriod value = createTimePeriod((Timestamp) record[0], (Timestamp) record[1], (Timestamp) record[2]); temporalBBoxMap.put((String) record[3], value); } } LOGGER.debug(temporalBoundingBoxes.toString()); return temporalBBoxMap; } } return new HashMap<String, TimePeriod>(0); }
From source file:org.n52.sos.ds.hibernate.util.HibernateCriteriaQueryUtilities.java
License:Open Source License
/** * Get min time from observations for offering * //w w w . j a v a2 s .com * @param offering * Offering identifier * @param session * Hibernate session * @return min time for offering */ @Deprecated public static DateTime getMinDate4Offering(String offering, Session session) { Criteria criteria = session.createCriteria(Observation.class) .setProjection(Projections.min(Observation.PHENOMENON_TIME_START)) .add(Restrictions.eq(Observation.DELETED, false)).createCriteria(Observation.OFFERINGS) .add(Restrictions.eq(Offering.IDENTIFIER, offering)); Object min = criteria.uniqueResult(); if (min != null) { return new DateTime(min); } return null; }