List of usage examples for org.hibernate.criterion Projections distinct
public static Projection distinct(Projection projection)
From source file:org.n52.sos.ds.hibernate.cache.base.ProcedureCacheUpdateTask.java
License:Open Source License
@SuppressWarnings("unchecked") protected Set<String> getObservationIdentifiers(Session session, String procedureIdentifier) { return Sets.newHashSet(session.createCriteria(Observation.class) .setProjection(Projections.distinct(Projections.property(Observation.IDENTIFIER))) .add(Restrictions.isNotNull(Observation.IDENTIFIER)) .add(Restrictions.eq(Observation.DELETED, false)).createCriteria(Observation.PROCEDURE) .add(Restrictions.eq(Procedure.IDENTIFIER, procedureIdentifier)).list()); }
From source file:org.n52.sos.ds.hibernate.dao.AbstractObservationDAO.java
License:Open Source License
/** * Get all observation identifiers// ww w . j a v a 2 s . com * * @param session * Hibernate session * @return Observation identifiers */ @SuppressWarnings("unchecked") public List<String> getObservationIdentifier(Session session) { Criteria criteria = session.createCriteria(getObservationInfoClass()) .add(Restrictions.eq(Observation.DELETED, false)) .add(Restrictions.isNotNull(Observation.IDENTIFIER)) .setProjection(Projections.distinct(Projections.property(Observation.IDENTIFIER))); LOGGER.debug("QUERY getObservationIdentifiers(): {}", HibernateHelper.getSqlString(criteria)); return criteria.list(); }
From source file:org.n52.sos.ds.hibernate.dao.AbstractSpatialFilteringProfileDAO.java
License:Open Source License
/** * Create detached observation criteria for spatial filter * /* w w w . ja va 2s . c om*/ * @param clazz * Entity to create Criteria for * @param spatialFilter * @return Detached criteria * @throws OwsExceptionReport * If coordinate switching fails */ @SuppressWarnings("rawtypes") protected DetachedCriteria getDetachedCriteria(Class clazz, SpatialFilter spatialFilter) throws OwsExceptionReport { final DetachedCriteria detachedCriteria = DetachedCriteria.forClass(clazz); if (spatialFilter != null) { detachedCriteria.add(SpatialRestrictions.filter(AbstractSpatialFilteringProfile.GEOMETRY, spatialFilter.getOperator(), GeometryHandler.getInstance() .switchCoordinateAxisFromToDatasourceIfNeeded(spatialFilter.getGeometry()))); } detachedCriteria.setProjection( Projections.distinct(Projections.property(AbstractSpatialFilteringProfile.OBSERVATION))); return detachedCriteria; }
From source file:org.n52.sos.ds.hibernate.dao.AbstractSpatialFilteringProfileDAO.java
License:Open Source License
/** * Create criteria for entity and detached criteria * //from w ww. ja v a 2 s . c om * @param clazz * Entity to create Criteria for * @param detachedCriteria * @param session * Hibernate session * @return Criteria */ @SuppressWarnings("rawtypes") protected Criteria getObservationCriteria(Class clazz, DetachedCriteria detachedCriteria, Session session) { final Criteria criteria = session.createCriteria(clazz); criteria.add(Subqueries.propertyIn(AbstractSpatialFilteringProfile.OBSERVATION, detachedCriteria)); criteria.createAlias(AbstractSpatialFilteringProfile.OBSERVATION, "o"); criteria.setProjection(Projections.distinct(Projections.property("o." + AbstractObservation.ID))); return criteria; }
From source file:org.n52.sos.ds.hibernate.dao.CacheQueryTest.java
License:Open Source License
private long getFoiForOfferingObservationInfoTime() { // new way using ObservationInfo class (excludes value table joins) Session session = getSession();/*from ww w. ja va 2s . c om*/ long start = System.currentTimeMillis(); Criteria c = session.createCriteria(getObservationInfoClass(session)) .add(Restrictions.eq(AbstractObservation.DELETED, false)); c.createCriteria(AbstractObservation.FEATURE_OF_INTEREST) .setProjection(Projections.distinct(Projections.property(FeatureOfInterest.IDENTIFIER))); c.createCriteria(AbstractObservation.OFFERINGS) .add(Restrictions.eq(Offering.IDENTIFIER, HibernateObservationBuilder.OFFERING_1)); c.list(); long time = System.currentTimeMillis() - start; LOGGER.debug("QUERY get featureOfInterest identifiers for offering new way: {}", HibernateHelper.getSqlString(c)); returnSession(session); return time; }
From source file:org.n52.sos.ds.hibernate.dao.CacheQueryTest.java
License:Open Source License
private long getFoiForOfferingObservationTime() { // old way using full Observation class (includes value table joins) Session session = getSession();//w w w . j a v a 2 s . c o m long start = System.currentTimeMillis(); final Criteria c = session.createCriteria(getObservationClass(session)) .add(Restrictions.eq(AbstractObservation.DELETED, false)); c.createCriteria(AbstractObservation.FEATURE_OF_INTEREST) .setProjection(Projections.distinct(Projections.property(FeatureOfInterest.IDENTIFIER))); c.createCriteria(AbstractObservation.OFFERINGS) .add(Restrictions.eq(Offering.IDENTIFIER, HibernateObservationBuilder.OFFERING_1)); c.list(); long time = System.currentTimeMillis() - start; LOGGER.debug("QUERY get featureOfInterest identifiers for offering old way: {}", HibernateHelper.getSqlString(c)); returnSession(session); return time; }
From source file:org.n52.sos.ds.hibernate.dao.ereporting.EReportingObservationDAO.java
License:Open Source License
private void addAssessmentType(Criteria c, String assessmentType) { final DetachedCriteria detachedCriteria = DetachedCriteria.forClass(EReportingSeries.class); detachedCriteria.add(Restrictions.eq(Series.DELETED, false)); detachedCriteria.createCriteria(EReportingSeries.SAMPLING_POINT) .createCriteria(EReportingSamplingPoint.ASSESSMENTTYPE) .add(Restrictions.ilike(EReportingAssessmentType.ASSESSMENT_TYPE, assessmentType)); detachedCriteria.setProjection(Projections.distinct(Projections.property(Series.ID))); c.add(Subqueries.propertyIn(SeriesObservation.SERIES, detachedCriteria)); }
From source file:org.n52.sos.ds.hibernate.dao.FeatureOfInterestDAO.java
License:Open Source License
/** * Get featureOfInterest identifiers for observation constellation * * @param observationConstellation// w w w .ja v a 2s . c om * Observation constellation * @param session * Hibernate session Hibernate session * @return FeatureOfInterest identifiers for observation constellation * @throws CodedException */ @SuppressWarnings("unchecked") public List<String> getFeatureOfInterestIdentifiersForObservationConstellation( final ObservationConstellation observationConstellation, final Session session) throws OwsExceptionReport { if (HibernateHelper.isNamedQuerySupported( SQL_QUERY_GET_FEATURE_OF_INTEREST_IDENTIFIER_FOR_OBSERVATION_CONSTELLATION, session)) { Query namedQuery = session .getNamedQuery(SQL_QUERY_GET_FEATURE_OF_INTEREST_IDENTIFIER_FOR_OBSERVATION_CONSTELLATION); namedQuery.setParameter(PROCEDURE, observationConstellation.getProcedure().getIdentifier()); namedQuery.setParameter(OBSERVABLE_PROPERTY, observationConstellation.getObservableProperty().getIdentifier()); namedQuery.setParameter(OFFERING, observationConstellation.getOffering().getIdentifier()); LOGGER.debug( "QUERY getFeatureOfInterestIdentifiersForObservationConstellation(observationConstellation) with NamedQuery: {}", SQL_QUERY_GET_FEATURE_OF_INTEREST_IDENTIFIER_FOR_OBSERVATION_CONSTELLATION); return namedQuery.list(); } else { AbstractObservationDAO observationDAO = DaoFactory.getInstance().getObservationDAO(); Criteria criteria = observationDAO.getDefaultObservationInfoCriteria(session); if (observationDAO instanceof SeriesObservationDAO) { Criteria seriesCriteria = criteria.createCriteria(SeriesObservationInfo.SERIES); seriesCriteria.add(Restrictions.eq(Series.PROCEDURE, observationConstellation.getProcedure())) .add(Restrictions.eq(Series.OBSERVABLE_PROPERTY, observationConstellation.getObservableProperty())); seriesCriteria.createCriteria(Series.FEATURE_OF_INTEREST) .setProjection(Projections.distinct(Projections.property(FeatureOfInterest.IDENTIFIER))); } else { criteria.add(Restrictions.eq(ObservationConstellation.PROCEDURE, observationConstellation.getProcedure())) .add(Restrictions.eq(ObservationConstellation.OBSERVABLE_PROPERTY, observationConstellation.getObservableProperty())); criteria.createCriteria(ObservationInfo.FEATURE_OF_INTEREST) .setProjection(Projections.distinct(Projections.property(FeatureOfInterest.IDENTIFIER))); } criteria.createCriteria(AbstractObservation.OFFERINGS) .add(Restrictions.eq(Offering.ID, observationConstellation.getOffering().getOfferingId())); LOGGER.debug( "QUERY getFeatureOfInterestIdentifiersForObservationConstellation(observationConstellation): {}", HibernateHelper.getSqlString(criteria)); return criteria.list(); } }
From source file:org.n52.sos.ds.hibernate.dao.FeatureOfInterestDAO.java
License:Open Source License
/** * Get featureOfInterest identifiers for an offering identifier * * @param offeringIdentifiers/*from ww w. ja v a2 s . c o m*/ * Offering identifier * @param session * Hibernate session Hibernate session * @return FeatureOfInterest identifiers for offering * @throws CodedException */ @SuppressWarnings({ "unchecked" }) public List<String> getFeatureOfInterestIdentifiersForOffering(final String offeringIdentifiers, final Session session) throws OwsExceptionReport { if (HibernateHelper.isNamedQuerySupported(SQL_QUERY_GET_FEATURE_OF_INTEREST_IDENTIFIER_FOR_OFFERING, session)) { Query namedQuery = session.getNamedQuery(SQL_QUERY_GET_FEATURE_OF_INTEREST_IDENTIFIER_FOR_OFFERING); namedQuery.setParameter(OFFERING, offeringIdentifiers); LOGGER.debug( "QUERY getFeatureOfInterestIdentifiersForOffering(offeringIdentifiers) with NamedQuery: {}", SQL_QUERY_GET_FEATURE_OF_INTEREST_IDENTIFIER_FOR_OFFERING); return namedQuery.list(); } else { AbstractObservationDAO observationDAO = DaoFactory.getInstance().getObservationDAO(); Criteria c = observationDAO.getDefaultObservationInfoCriteria(session); if (observationDAO instanceof SeriesObservationDAO) { Criteria seriesCriteria = c.createCriteria(SeriesObservationInfo.SERIES); seriesCriteria.createCriteria(Series.FEATURE_OF_INTEREST) .setProjection(Projections.distinct(Projections.property(FeatureOfInterest.IDENTIFIER))); } else { c.createCriteria(AbstractObservation.FEATURE_OF_INTEREST) .setProjection(Projections.distinct(Projections.property(FeatureOfInterest.IDENTIFIER))); } new OfferingDAO().addOfferingRestricionForObservation(c, offeringIdentifiers); LOGGER.debug("QUERY getFeatureOfInterestIdentifiersForOffering(offeringIdentifiers): {}", HibernateHelper.getSqlString(c)); return c.list(); } }
From source file:org.n52.sos.ds.hibernate.dao.FeatureOfInterestDAO.java
License:Open Source License
/** * Get all featureOfInterest identifiers * * @param session//from ww w. j a va 2 s. c o m * Hibernate session * @return FeatureOfInterest identifiers */ @SuppressWarnings("unchecked") public List<String> getFeatureOfInterestIdentifiers(Session session) { Criteria criteria = session.createCriteria(FeatureOfInterest.class) .setProjection(Projections.distinct(Projections.property(FeatureOfInterest.IDENTIFIER))); LOGGER.debug("QUERY getFeatureOfInterestIdentifiers(): {}", HibernateHelper.getSqlString(criteria)); return criteria.list(); }