Example usage for org.hibernate.criterion Projections distinct

List of usage examples for org.hibernate.criterion Projections distinct

Introduction

In this page you can find the example usage for org.hibernate.criterion Projections distinct.

Prototype

public static Projection distinct(Projection projection) 

Source Link

Document

Create a distinct projection from a projection.

Usage

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();
}