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.OfferingDAO.java
License:Open Source License
/** * Get offering identifiers for observable property identifier * * @param observablePropertyIdentifier//w ww . j a v a2 s . c o m * Observable property identifier * @param session * Hibernate session * @return Offering identifiers * @throws CodedException */ @SuppressWarnings("unchecked") public Collection<String> getOfferingIdentifiersForObservableProperty(final String observablePropertyIdentifier, final Session session) throws OwsExceptionReport { final boolean flag = HibernateHelper.isEntitySupported(ObservationConstellation.class); Criteria c = null; if (flag) { c = session.createCriteria(Offering.class); c.add(Subqueries.propertyIn(Offering.ID, getDetachedCriteriaOfferingForObservablePropertyFromObservationConstellation( observablePropertyIdentifier, session))); c.setProjection(Projections.distinct(Projections.property(Offering.IDENTIFIER))); } else { AbstractObservationDAO observationDAO = DaoFactory.getInstance().getObservationDAO(); c = observationDAO.getDefaultObservationInfoCriteria(session); c.createCriteria(AbstractObservation.OFFERINGS) .setProjection(Projections.distinct(Projections.property(Offering.IDENTIFIER))); if (observationDAO instanceof SeriesObservationDAO) { Criteria seriesCriteria = c.createCriteria(SeriesObservationInfo.SERIES); seriesCriteria.createCriteria(Series.OBSERVABLE_PROPERTY) .add(Restrictions.eq(ObservableProperty.IDENTIFIER, observablePropertyIdentifier)); } else { c.createCriteria(AbstractObservation.OBSERVABLE_PROPERTY) .add(Restrictions.eq(ObservableProperty.IDENTIFIER, observablePropertyIdentifier)); } } LOGGER.debug( "QUERY getOfferingIdentifiersForObservableProperty(observablePropertyIdentifier) using ObservationContellation entitiy ({}): {}", flag, HibernateHelper.getSqlString(c)); return c.list(); }
From source file:org.n52.sos.ds.hibernate.dao.OfferingDAO.java
License:Open Source License
/** * Get Hibernate Detached Criteria for class ObservationConstellation and * observableProperty identifier/*from w w w . ja va 2s.co m*/ * * @param observablePropertyIdentifier * ObservableProperty identifier parameter * @param session * Hibernate session * @return Detached Criteria with Offering entities as result */ private DetachedCriteria getDetachedCriteriaOfferingForObservablePropertyFromObservationConstellation( String observablePropertyIdentifier, Session session) { final DetachedCriteria detachedCriteria = DetachedCriteria.forClass(ObservationConstellation.class); detachedCriteria.add(Restrictions.eq(ObservationConstellation.DELETED, false)); detachedCriteria.createCriteria(ObservationConstellation.OBSERVABLE_PROPERTY) .add(Restrictions.eq(ObservableProperty.IDENTIFIER, observablePropertyIdentifier)); detachedCriteria .setProjection(Projections.distinct(Projections.property(ObservationConstellation.OFFERING))); return detachedCriteria; }
From source file:org.n52.sos.ds.hibernate.dao.OfferingDAO.java
License:Open Source License
/** * Get Hibernate Detached Criteria for class ObservationConstellation and * procedure identifier//www .j a v a 2 s . c o m * * @param procedureIdentifier * Procedure identifier parameter * @param session * Hibernate session * @return Detached Criteria with Offering entities as result */ private DetachedCriteria getDetachedCriteriaOfferingForProcedureFromObservationConstellation( String procedureIdentifier, Session session) { final DetachedCriteria detachedCriteria = DetachedCriteria.forClass(ObservationConstellation.class); detachedCriteria.add(Restrictions.eq(ObservationConstellation.DELETED, false)); detachedCriteria.createCriteria(ObservationConstellation.PROCEDURE) .add(Restrictions.eq(Procedure.IDENTIFIER, procedureIdentifier)); detachedCriteria .setProjection(Projections.distinct(Projections.property(ObservationConstellation.OFFERING))); return detachedCriteria; }
From source file:org.n52.sos.ds.hibernate.dao.ProcedureDAO.java
License:Open Source License
@SuppressWarnings("unchecked") private List<Object[]> getFeatureProcedureResult(Session session) { List<Object[]> results; if (HibernateHelper.isNamedQuerySupported(SQL_QUERY_GET_PROCEDURES_FOR_ALL_FEATURES_OF_INTEREST, session)) { Query namedQuery = session.getNamedQuery(SQL_QUERY_GET_PROCEDURES_FOR_ALL_FEATURES_OF_INTEREST); LOGGER.debug("QUERY getProceduresForAllFeaturesOfInterest(feature) with NamedQuery: {}", SQL_QUERY_GET_PROCEDURES_FOR_ALL_FEATURES_OF_INTEREST); results = namedQuery.list();//from ww w.j av a 2s . c o m } else { Criteria c = null; if (EntitiyHelper.getInstance().isSeriesSupported()) { c = session.createCriteria(EntitiyHelper.getInstance().getSeriesEntityClass()) .createAlias(Series.FEATURE_OF_INTEREST, "f").createAlias(Series.PROCEDURE, "p") .add(Restrictions.eq(Series.DELETED, false)) .setProjection(Projections.distinct(Projections.projectionList() .add(Projections.property("f." + FeatureOfInterest.IDENTIFIER)) .add(Projections.property("p." + Procedure.IDENTIFIER)))); } else { c = session.createCriteria(Observation.class).createAlias(Observation.FEATURE_OF_INTEREST, "f") .createAlias(Observation.PROCEDURE, "p").add(Restrictions.eq(Observation.DELETED, false)) .setProjection(Projections.distinct(Projections.projectionList() .add(Projections.property("f." + FeatureOfInterest.IDENTIFIER)) .add(Projections.property("p." + Procedure.IDENTIFIER)))); } LOGGER.debug("QUERY getProceduresForAllFeaturesOfInterest(feature): {}", HibernateHelper.getSqlString(c)); results = c.list(); } return results; }
From source file:org.n52.sos.ds.hibernate.dao.ProcedureDAO.java
License:Open Source License
/** * Get procedure identifiers for FOI//from w w w . ja va2 s .c om * * @param session * Hibernate session * @param feature * FOI object * * @return Related procedure identifiers * @throws CodedException */ @SuppressWarnings("unchecked") public List<String> getProceduresForFeatureOfInterest(final Session session, final FeatureOfInterest feature) throws OwsExceptionReport { if (HibernateHelper.isNamedQuerySupported(SQL_QUERY_GET_PROCEDURES_FOR_FEATURE_OF_INTEREST, session)) { Query namedQuery = session.getNamedQuery(SQL_QUERY_GET_PROCEDURES_FOR_FEATURE_OF_INTEREST); namedQuery.setParameter(FEATURE, feature.getIdentifier()); LOGGER.debug("QUERY getProceduresForFeatureOfInterest(feature) with NamedQuery: {}", SQL_QUERY_GET_PROCEDURES_FOR_FEATURE_OF_INTEREST); return namedQuery.list(); } else { Criteria c = null; if (EntitiyHelper.getInstance().isSeriesSupported()) { c = getDefaultCriteria(session); c.add(Subqueries.propertyIn(Procedure.ID, getDetachedCriteriaProceduresForFeatureOfInterestFromSeries(feature, session))); c.setProjection(Projections.distinct(Projections.property(Procedure.IDENTIFIER))); } else { AbstractObservationDAO observationDAO = DaoFactory.getInstance().getObservationDAO(); c = observationDAO.getDefaultObservationInfoCriteria(session); c.createCriteria(AbstractObservation.FEATURE_OF_INTEREST) .add(Restrictions.eq(FeatureOfInterest.IDENTIFIER, feature.getIdentifier())); c.createCriteria(AbstractObservation.PROCEDURE) .setProjection(Projections.distinct(Projections.property(Procedure.IDENTIFIER))); } LOGGER.debug("QUERY getProceduresForFeatureOfInterest(feature): {}", HibernateHelper.getSqlString(c)); return (List<String>) c.list(); } }
From source file:org.n52.sos.ds.hibernate.dao.ProcedureDAO.java
License:Open Source License
/** * Get procedure identifiers for offering identifier * * @param offeringIdentifier//from ww w .ja va2 s .c o m * Offering identifier * @param session * Hibernate session * @return Procedure identifiers * @throws CodedException * If an error occurs */ @SuppressWarnings("unchecked") public List<String> getProcedureIdentifiersForOffering(final String offeringIdentifier, final Session session) throws OwsExceptionReport { final boolean obsConstSupported = HibernateHelper.isEntitySupported(ObservationConstellation.class); Criteria c = null; if (obsConstSupported) { c = getDefaultCriteria(session); c.add(Subqueries.propertyIn(Procedure.ID, getDetachedCriteriaProceduresForOfferingFromObservationConstellation(offeringIdentifier, session))); c.setProjection(Projections.distinct(Projections.property(Procedure.IDENTIFIER))); } else { AbstractObservationDAO observationDAO = DaoFactory.getInstance().getObservationDAO(); c = observationDAO.getDefaultObservationInfoCriteria(session); if (observationDAO instanceof SeriesObservationDAO) { Criteria seriesCriteria = c.createCriteria(SeriesObservationInfo.SERIES); seriesCriteria.createCriteria(Series.PROCEDURE) .setProjection(Projections.distinct(Projections.property(Procedure.IDENTIFIER))); } else { c.createCriteria(AbstractObservation.PROCEDURE) .setProjection(Projections.distinct(Projections.property(Procedure.IDENTIFIER))); } new OfferingDAO().addOfferingRestricionForObservation(c, offeringIdentifier); } LOGGER.debug( "QUERY getProcedureIdentifiersForOffering(offeringIdentifier) using ObservationContellation entitiy ({}): {}", obsConstSupported, HibernateHelper.getSqlString(c)); return c.list(); }
From source file:org.n52.sos.ds.hibernate.dao.ProcedureDAO.java
License:Open Source License
/** * Get procedure identifiers for observable property identifier * * @param observablePropertyIdentifier/*from w w w . j av a 2s. c o m*/ * Observable property identifier * @param session * Hibernate session * @return Procedure identifiers * @throws CodedException */ @SuppressWarnings("unchecked") public Collection<String> getProcedureIdentifiersForObservableProperty( final String observablePropertyIdentifier, final Session session) throws CodedException { final boolean flag = HibernateHelper.isEntitySupported(ObservationConstellation.class); Criteria c = null; if (flag) { c = getDefaultCriteria(session); c.setProjection(Projections.distinct(Projections.property(Procedure.IDENTIFIER))); c.add(Subqueries.propertyIn(Procedure.ID, getDetachedCriteriaProceduresForObservablePropertyFromObservationConstellation( observablePropertyIdentifier, session))); } else { if (EntitiyHelper.getInstance().isSeriesSupported()) { c = getDefaultCriteria(session); c.setProjection(Projections.distinct(Projections.property(Procedure.IDENTIFIER))); c.add(Subqueries.propertyIn(Procedure.ID, getDetachedCriteriaProceduresForObservablePropertyFromSeries(observablePropertyIdentifier, session))); } else { c = session.createCriteria(ObservationInfo.class) .add(Restrictions.eq(ObservationInfo.DELETED, false)); c.createCriteria(ObservationInfo.PROCEDURE) .setProjection(Projections.distinct(Projections.property(Procedure.IDENTIFIER))); c.createCriteria(ObservationInfo.OBSERVABLE_PROPERTY) .add(Restrictions.eq(ObservableProperty.IDENTIFIER, observablePropertyIdentifier)); } } LOGGER.debug( "QUERY getProcedureIdentifiersForObservableProperty(observablePropertyIdentifier) using ObservationContellation entitiy ({}): {}", flag, HibernateHelper.getSqlString(c)); return c.list(); }
From source file:org.n52.sos.ds.hibernate.dao.ProcedureDAO.java
License:Open Source License
/** * Get Hibernate Detached Criteria for class Series and featureOfInterest * identifier/*from www . ja va 2 s . c o m*/ * * @param featureOfInterest * FeatureOfInterest identifier parameter * @param session * Hibernate session * @return Hiberante Detached Criteria with Procedure entities * @throws CodedException */ private DetachedCriteria getDetachedCriteriaProceduresForFeatureOfInterestFromSeries( FeatureOfInterest featureOfInterest, Session session) throws CodedException { final DetachedCriteria detachedCriteria = DetachedCriteria .forClass(DaoFactory.getInstance().getSeriesDAO().getClass()); detachedCriteria.add(Restrictions.eq(Series.DELETED, false)); detachedCriteria.add(Restrictions.eq(Series.FEATURE_OF_INTEREST, featureOfInterest)); detachedCriteria.setProjection(Projections.distinct(Projections.property(Series.PROCEDURE))); return detachedCriteria; }
From source file:org.n52.sos.ds.hibernate.dao.ProcedureDAO.java
License:Open Source License
/** * Get Hibernate Detached Criteria for class ObservationConstellation and * observableProperty identifier/*from w w w. j a v a 2s . co m*/ * * @param observablePropertyIdentifier * ObservableProperty identifier parameter * @param session * Hibernate session * @return Hiberante Detached Criteria with Procedure entities */ private DetachedCriteria getDetachedCriteriaProceduresForObservablePropertyFromObservationConstellation( String observablePropertyIdentifier, Session session) { final DetachedCriteria detachedCriteria = DetachedCriteria.forClass(ObservationConstellation.class); detachedCriteria.add(Restrictions.eq(ObservationConstellation.DELETED, false)); detachedCriteria.createCriteria(ObservationConstellation.OBSERVABLE_PROPERTY) .add(Restrictions.eq(ObservableProperty.IDENTIFIER, observablePropertyIdentifier)); 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
/** * Get Hibernate Detached Criteria for class Series and observableProperty * identifier/*from ww w . java2 s . c o m*/ * * @param observablePropertyIdentifier * ObservableProperty identifier parameter * @param session * Hibernate session * @return Hiberante Detached Criteria with Procedure entities * @throws CodedException */ private DetachedCriteria getDetachedCriteriaProceduresForObservablePropertyFromSeries( String observablePropertyIdentifier, Session session) throws CodedException { final DetachedCriteria detachedCriteria = DetachedCriteria .forClass(DaoFactory.getInstance().getSeriesDAO().getClass()); detachedCriteria.add(Restrictions.eq(Series.DELETED, false)); detachedCriteria.createCriteria(Series.OBSERVABLE_PROPERTY) .add(Restrictions.eq(ObservableProperty.IDENTIFIER, observablePropertyIdentifier)); detachedCriteria.setProjection(Projections.distinct(Projections.property(Series.PROCEDURE))); return detachedCriteria; }