List of usage examples for org.hibernate.criterion Projections distinct
public static Projection distinct(Projection projection)
From source file:org.n52.sos.ds.hibernate.dao.ProcedureDAO.java
License:Open Source License
/** * Get Hibernate Detached Criteria for class ObservationConstellation and * offering identifier/*from w w w. ja va 2 s . c o m*/ * * @param offeringIdentifier * Offering identifier parameter * @param session * Hibernate session * @return Detached Criteria with Procedure entities */ private DetachedCriteria getDetachedCriteriaProceduresForOfferingFromObservationConstellation( String offeringIdentifier, Session session) { final DetachedCriteria detachedCriteria = DetachedCriteria.forClass(ObservationConstellation.class); detachedCriteria.add(Restrictions.eq(ObservationConstellation.DELETED, false)); detachedCriteria.createCriteria(ObservationConstellation.OFFERING) .add(Restrictions.eq(Offering.IDENTIFIER, offeringIdentifier)); detachedCriteria .setProjection(Projections.distinct(Projections.property(ObservationConstellation.PROCEDURE))); return detachedCriteria; }
From source file:org.n52.sos.ds.hibernate.dao.ProcedureDAO.java
License:Open Source License
@SuppressWarnings("unchecked") protected Set<String> getObservationIdentifiers(Session session, String procedureIdentifier) { if (EntitiyHelper.getInstance().isSeriesObservationInfoSupported()) { Criteria criteria = session.createCriteria(EntitiyHelper.getInstance().getObservationInfoEntityClass()) .setProjection(Projections.distinct(Projections.property(SeriesObservationInfo.IDENTIFIER))) .add(Restrictions.isNotNull(SeriesObservationInfo.IDENTIFIER)) .add(Restrictions.eq(SeriesObservationInfo.DELETED, false)); Criteria seriesCriteria = criteria.createCriteria(SeriesObservationInfo.SERIES); seriesCriteria.createCriteria(Series.PROCEDURE) .add(Restrictions.eq(Procedure.IDENTIFIER, procedureIdentifier)); LOGGER.debug("QUERY getObservationIdentifiers(procedureIdentifier): {}", HibernateHelper.getSqlString(criteria)); return Sets.newHashSet(criteria.list()); } else {//from ww w. ja v a2s . c om Criteria criteria = session.createCriteria(EntitiyHelper.getInstance().getObservationInfoEntityClass()) .setProjection(Projections.distinct(Projections.property(ObservationInfo.IDENTIFIER))) .add(Restrictions.isNotNull(ObservationInfo.IDENTIFIER)) .add(Restrictions.eq(ObservationInfo.DELETED, false)); criteria.createCriteria(ObservationInfo.PROCEDURE) .add(Restrictions.eq(Procedure.IDENTIFIER, procedureIdentifier)); LOGGER.debug("QUERY getObservationIdentifiers(procedureIdentifier): {}", HibernateHelper.getSqlString(criteria)); return Sets.newHashSet(criteria.list()); } }
From source file:org.n52.sos.ds.hibernate.dao.ProcedureDescriptionFormatDAO.java
License:Open Source License
@SuppressWarnings("unchecked") public List<String> getProcedureDescriptionFormat(Session session) { Criteria c = session.createCriteria(ProcedureDescriptionFormat.class); c.setProjection(Projections .distinct(Projections.property(ProcedureDescriptionFormat.PROCEDURE_DESCRIPTION_FORMAT))); c.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); return c.list(); }
From source file:org.n52.sos.ds.hibernate.dao.series.AbstractSeriesObservationDAO.java
License:Open Source License
@SuppressWarnings("unchecked") @Override//w w w . j a v a 2 s . c o m public Collection<String> getObservationIdentifiers(String procedureIdentifier, Session session) { Criteria criteria = getDefaultObservationInfoCriteria(session) .setProjection(Projections.distinct(Projections.property(SeriesObservationInfo.IDENTIFIER))) .add(Restrictions.isNotNull(SeriesObservationInfo.IDENTIFIER)) .add(Restrictions.eq(SeriesObservationInfo.DELETED, false)); Criteria seriesCriteria = criteria.createCriteria(SeriesObservationInfo.SERIES); seriesCriteria.createCriteria(Series.PROCEDURE) .add(Restrictions.eq(Procedure.IDENTIFIER, procedureIdentifier)); LOGGER.debug("QUERY getObservationIdentifiers(procedureIdentifier): {}", HibernateHelper.getSqlString(criteria)); return criteria.list(); }
From source file:org.n52.sos.ds.hibernate.dao.series.AbstractSeriesObservationDAO.java
License:Open Source License
/** * Get the result times for this series, offerings and filters * /* w w w . j a v a2s .c om*/ * @param series * Timeseries to get result times for * @param offerings * Offerings to restrict matching result times * @param filter * Temporal filter to restrict matching result times * @param session * Hibernate session * @return Matching result times */ @SuppressWarnings("unchecked") public List<Date> getResultTimesForSeriesObservation(Series series, List<String> offerings, Criterion filter, Session session) { Criteria criteria = createCriteriaFor(getObservationTimeClass(), series, session); if (CollectionHelper.isNotEmpty(offerings)) { criteria.createCriteria(SeriesObservationTime.OFFERINGS) .add(Restrictions.in(Offering.IDENTIFIER, offerings)); } if (filter != null) { criteria.add(filter); } criteria.setProjection(Projections.distinct(Projections.property(SeriesObservationTime.RESULT_TIME))); criteria.addOrder(Order.asc(SeriesObservationTime.RESULT_TIME)); LOGGER.debug("QUERY getResultTimesForSeriesObservation({}): {}", HibernateHelper.getSqlString(criteria)); return criteria.list(); }
From source file:org.n52.sos.ds.hibernate.GetDataAvailabilityDAO.java
License:Open Source License
/** * Get the result times for the timeseries * /* w w w . j av a 2 s .c om*/ * @param dataAvailability * Timeseries to get result times for * @param request * GetDataAvailability request * @param session * Hibernate session * @return List of result times * @throws OwsExceptionReport * if the requested temporal filter is not supported */ @SuppressWarnings("unchecked") private List<TimeInstant> getResultTimesFromObservation(DataAvailability dataAvailability, GetDataAvailabilityRequest request, Session session) throws OwsExceptionReport { Criteria c = getDefaultObservationInfoCriteria(session); c.createCriteria(ObservationInfo.FEATURE_OF_INTEREST).add( Restrictions.eq(FeatureOfInterest.IDENTIFIER, dataAvailability.getFeatureOfInterest().getHref())); c.createCriteria(ObservationInfo.PROCEDURE) .add(Restrictions.eq(Procedure.IDENTIFIER, dataAvailability.getProcedure().getHref())); c.createCriteria(ObservationInfo.OBSERVABLE_PROPERTY).add( Restrictions.eq(ObservableProperty.IDENTIFIER, dataAvailability.getObservedProperty().getHref())); if (request.isSetOfferings()) { c.createCriteria(ObservationInfo.OFFERINGS) .add(Restrictions.in(Offering.IDENTIFIER, request.getOfferings())); } if (hasPhenomenonTimeFilter(request.getExtensions())) { c.add(TemporalRestrictions.filter(getPhenomenonTimeFilter(request.getExtensions()))); } c.setProjection(Projections.distinct(Projections.property(ObservationInfo.RESULT_TIME))); c.addOrder(Order.asc(ObservationInfo.RESULT_TIME)); LOGGER.debug("QUERY getResultTimesFromObservation({}): {}", HibernateHelper.getSqlString(c)); List<TimeInstant> resultTimes = Lists.newArrayList(); for (Date date : (List<Date>) c.list()) { resultTimes.add(new TimeInstant(date)); } return resultTimes; }
From source file:org.n52.sos.ds.hibernate.GetFeatureOfInterestDAO.java
License:Open Source License
/** * Get featureOfInterest identifiers for requested parameters * * @param req/*from w ww . j a va 2s .c om*/ * GetFeatureOfInterest request * @param session * Hibernate session * @return Resulting FeatureOfInterest identifiers list * @throws OwsExceptionReport * If an error occurs during processing */ @SuppressWarnings("unchecked") private List<String> queryFeatureIdentifiersForParameter(final GetFeatureOfInterestRequest req, final Session session) throws OwsExceptionReport { if (req.hasNoParameter()) { return new FeatureOfInterestDAO().getFeatureOfInterestIdentifiers(session); } if (req.containsOnlyFeatureParameter() && req.isSetFeatureOfInterestIdentifiers()) { final Criteria c = session.createCriteria(FeatureOfInterest.class) .setProjection(Projections.distinct(Projections.property(FeatureOfInterest.IDENTIFIER))); final Collection<String> features = getFeatureIdentifiers(req.getFeatureIdentifiers()); if (features != null && !features.isEmpty()) { c.add(Restrictions.in(FeatureOfInterest.IDENTIFIER, features)); } LOGGER.debug("QUERY queryFeatureIdentifiersForParameter(request): {}", HibernateHelper.getSqlString(c)); return c.list(); } if (checkForNamedQueries(req, session)) { return executeNamedQuery(req, session); } if (isSos100(req)) { return queryFeatureIdentifiersForParameterForSos100(req, session); } if (EntitiyHelper.getInstance().isSeriesSupported()) { return queryFeatureIdentifiersForParameterForSeries(req, session); } return queryFeatureIdentifiersOfParameterFromOldObservations(req, session); }
From source file:org.n52.sos.ds.hibernate.GetFeatureOfInterestDAO.java
License:Open Source License
/** * Get Hibernate Criteria for query FeatureOfInterest identifiers for old * observation concept/*from ww w .j ava 2s . c o m*/ * * @param req * GetFeatureOfInterest request * @param session * Hibernate Sesstion * @return Hibernate Criteria */ private Criteria getCriteriaForFeatureIdentifiersOfParameterFromOldObservations(GetFeatureOfInterestRequest req, Session session) { final Criteria c = session.createCriteria(ObservationInfo.class); final Criteria fc = c.createCriteria(ObservationInfo.FEATURE_OF_INTEREST); fc.setProjection(Projections.distinct(Projections.property(FeatureOfInterest.IDENTIFIER))); // relates to observations. if (req.isSetFeatureOfInterestIdentifiers()) { final Collection<String> features = getFeatureIdentifiers(req.getFeatureIdentifiers()); if (features != null && !features.isEmpty()) { fc.add(Restrictions.in(FeatureOfInterest.IDENTIFIER, features)); } } // observableProperties if (req.isSetObservableProperties()) { c.createCriteria(ObservationInfo.OBSERVABLE_PROPERTY) .add(Restrictions.in(ObservableProperty.IDENTIFIER, req.getObservedProperties())); } // procedures if (req.isSetProcedures()) { c.createCriteria(ObservationInfo.PROCEDURE) .add(Restrictions.in(Procedure.IDENTIFIER, req.getProcedures())); } return c; }
From source file:org.n52.sos.ds.hibernate.GetFeatureOfInterestDAO.java
License:Open Source License
/** * Query FeatureOfInterest identifiers for series concept * * @param req/*from w w w. j a v a2s. c om*/ * GetFeatureOfInterest request * @param session * Hibernate Sesstion * @return Resulting FeatureOfInterest identifiers list * @throws CodedException If an error occurs during processing */ @SuppressWarnings("unchecked") private List<String> queryFeatureIdentifiersForParameterForSeries(GetFeatureOfInterestRequest req, Session session) throws CodedException { final Criteria c = session.createCriteria(FeatureOfInterest.class); if (req.isSetFeatureOfInterestIdentifiers()) { c.add(Restrictions.in(FeatureOfInterest.IDENTIFIER, req.getFeatureIdentifiers())); } c.add(Subqueries.propertyIn(FeatureOfInterest.ID, getDetachedCriteriaForSeriesWithProcedureObservableProperty(req, session))); c.setProjection(Projections.distinct(Projections.property(FeatureOfInterest.IDENTIFIER))); LOGGER.debug("QUERY queryFeatureIdentifiersForParameterForSeries(request): {}", HibernateHelper.getSqlString(c)); return c.list(); }
From source file:org.n52.sos.ds.hibernate.GetFeatureOfInterestDAO.java
License:Open Source License
/** * Get Hibernate Criteria for query FeatureOfInterest identifiers for series * observation concept (SOS 1.0.0)// ww w. j a v a2 s. c o m * * @param req * GetFeatureOfInterest request * @param session * Hibernate Sesstion * @return Hibernate Criteria * @throws OwsExceptionReport * If an error occurs during processing */ private Criteria getCriteriaForFeatureIdentifiersOfParameterFromSeriesObservations( GetFeatureOfInterestRequest req, Session session) throws OwsExceptionReport { final Criteria c = session.createCriteria(FeatureOfInterest.class); if (req.isSetFeatureOfInterestIdentifiers()) { c.add(Restrictions.in(FeatureOfInterest.IDENTIFIER, req.getFeatureIdentifiers())); } c.add(Subqueries.propertyIn(FeatureOfInterest.ID, getDetachedCriteriaForFeautreOfInterestForSeries(req, session))); c.setProjection(Projections.distinct(Projections.property(FeatureOfInterest.IDENTIFIER))); return c; }