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.GetFeatureOfInterestDAO.java

License:Open Source License

/**
 * Get Detached Criteria for series concept. Criteria results are
 * FeatureOfInterest entities.//from   w w  w .j  a  v a2s  . c  o m
 *
 * @param req
 *            GetFeatureOfInterest request
 * @param session
 *            Hibernate Sesstion
 * @return Detached Criteria
 * @throws CodedException If an error occurs during processing
 */
private DetachedCriteria getDetachedCriteriaForSeriesWithProcedureObservableProperty(
        GetFeatureOfInterestRequest req, Session session) throws CodedException {
    final DetachedCriteria detachedCriteria = DetachedCriteria
            .forClass(EntitiyHelper.getInstance().getSeriesEntityClass());
    detachedCriteria.add(Restrictions.eq(Series.DELETED, false));
    // observableProperties
    if (req.isSetObservableProperties()) {
        detachedCriteria.createCriteria(Series.OBSERVABLE_PROPERTY)
                .add(Restrictions.in(ObservableProperty.IDENTIFIER, req.getObservedProperties()));
    }
    // procedures
    if (req.isSetProcedures()) {
        detachedCriteria.createCriteria(Series.PROCEDURE)
                .add(Restrictions.in(Procedure.IDENTIFIER, req.getProcedures()));
    }
    detachedCriteria.setProjection(Projections.distinct(Projections.property(Series.FEATURE_OF_INTEREST)));
    return detachedCriteria;
}

From source file:org.n52.sos.ds.hibernate.GetFeatureOfInterestDAO.java

License:Open Source License

/**
 * Get Detached Criteria for SOS 1.0.0 and series concept. Criteria results
 * are FeatureOfInterest entities./*from www.  j  a v a  2s . c  o  m*/
 *
 * @param req
 *            GetFeatureOfInterest request
 * @param session
 *            Hibernate Sesstion
 * @return Detached Criteria
 * @throws OwsExceptionReport
 *             If an error occurs during processing
 */
private DetachedCriteria getDetachedCriteriaForFeautreOfInterestForSeries(GetFeatureOfInterestRequest req,
        Session session) throws OwsExceptionReport {
    final DetachedCriteria detachedCriteria = DetachedCriteria
            .forClass(EntitiyHelper.getInstance().getSeriesEntityClass());
    detachedCriteria.add(Subqueries.propertyIn(Series.ID,
            getDetachedCriteriaForSeriesWithProcedureObservablePropertyTemporalFilter(req, session)));
    detachedCriteria.setProjection(Projections.distinct(Projections.property(Series.FEATURE_OF_INTEREST)));
    return detachedCriteria;
}

From source file:org.n52.sos.ds.hibernate.GetFeatureOfInterestDAO.java

License:Open Source License

/**
 * Get Detached Criteria for SOS 1.0.0 and series concept. Criteria results
 * are Series entities.// ww  w  .  j  a  va 2s .  c o m
 *
 * @param req
 *            GetFeatureOfInterest request
 * @param session
 *            Hibernate Sesstion
 * @return Detached Criteria
 * @throws CodedException If an error occurs during processing
 */
private DetachedCriteria getDetachedCriteriaForSeriesWithProcedureObservablePropertyTemporalFilter(
        GetFeatureOfInterestRequest req, Session session) throws CodedException {
    final DetachedCriteria detachedCriteria = DetachedCriteria
            .forClass(EntitiyHelper.getInstance().getObservationInfoEntityClass());
    DetachedCriteria seriesCriteria = detachedCriteria.createCriteria(SeriesObservationInfo.SERIES);
    detachedCriteria.add(Restrictions.eq(Series.DELETED, false));
    // observableProperties
    if (req.isSetObservableProperties()) {
        seriesCriteria.createCriteria(Series.OBSERVABLE_PROPERTY)
                .add(Restrictions.in(ObservableProperty.IDENTIFIER, req.getObservedProperties()));
    }
    // procedures
    if (req.isSetProcedures()) {
        seriesCriteria.createCriteria(Series.PROCEDURE)
                .add(Restrictions.in(Procedure.IDENTIFIER, req.getProcedures()));
    }
    // temporal filter
    if (req.isSetTemporalFilters()) {
        detachedCriteria.add(TemporalRestrictions.filter(req.getTemporalFilters()));
    }

    detachedCriteria.setProjection(Projections.distinct(Projections.property(SeriesObservationInfo.SERIES)));
    return detachedCriteria;
}

From source file:org.n52.sos.ds.hibernate.HibernateFeatureQueryHandler.java

License:Open Source License

@Deprecated
@Override//w w w.j av a  2 s  . c  o  m
@SuppressWarnings("unchecked")
public Collection<String> getFeatureIDs(final SpatialFilter filter, final Object connection)
        throws OwsExceptionReport {
    final Session session = HibernateSessionHolder.getSession(connection);
    try {
        if (GeometryHandler.getInstance().isSpatialDatasource()) {
            final Criteria c = session.createCriteria(FeatureOfInterest.class)
                    .setProjection(Projections.distinct(Projections.property(FeatureOfInterest.IDENTIFIER)));
            if (filter != null) {
                c.add(SpatialRestrictions.filter(FeatureOfInterest.GEOMETRY, filter.getOperator(),
                        getGeometryHandler()
                                .switchCoordinateAxisFromToDatasourceIfNeeded(filter.getGeometry())));
            }
            return c.list();
        } else {

            final List<String> identifiers = new LinkedList<String>();
            final List<FeatureOfInterest> features = session.createCriteria(FeatureOfInterest.class).list();
            if (filter != null) {
                final Geometry envelope = GeometryHandler.getInstance()
                        .getFilterForNonSpatialDatasource(filter);
                for (final FeatureOfInterest feature : features) {
                    final Geometry geom = getGeomtery(feature, session);
                    if (geom != null && envelope.contains(geom)) {
                        identifiers.add(feature.getIdentifier());
                    }
                }
            }
            return identifiers;
        }
    } catch (final HibernateException he) {
        throw new NoApplicableCodeException().causedBy(he)
                .withMessage("An error occurred while querying feature identifiers for spatial filter!");
    }
}

From source file:org.n52.sos.ds.hibernate.util.HibernateCriteriaQueryUtilities.java

License:Open Source License

/**
 * Get procedure identifiers for FOI//from  w  w w .j  av  a  2s .  co  m
 * 
 * @param session
 *            Hibernate session
 * @param feature
 *            FOI object
 * 
 * @return Related procedure identifiers
 */
@Deprecated
@SuppressWarnings("unchecked")
public static List<String> getProceduresForFeatureOfInterest(Session session, FeatureOfInterest feature) {
    return session.createCriteria(Observation.class).add(Restrictions.eq(Observation.DELETED, false))
            .createCriteria(Observation.FEATURE_OF_INTEREST)
            .add(Restrictions.eq(FeatureOfInterest.IDENTIFIER, feature.getIdentifier()))
            .setProjection(Projections.distinct(Projections.property(FeatureOfInterest.IDENTIFIER))).list();
}

From source file:org.n52.sos.ds.hibernate.util.HibernateCriteriaQueryUtilities.java

License:Open Source License

@Deprecated
@SuppressWarnings("unchecked")
public static List<String> getObservationIdentifiers(Session session) {
    return session.createCriteria(Observation.class).add(Restrictions.eq(Observation.DELETED, false))
            .add(Restrictions.isNotNull(Observation.IDENTIFIER))
            .setProjection(Projections.distinct(Projections.property(Observation.IDENTIFIER))).list();
}

From source file:org.n52.sos.ds.hibernate.util.HibernateCriteriaQueryUtilities.java

License:Open Source License

/**
 * Get FOI identifiers for an offering identifier
 * /*from   ww  w. j  a  v  a  2s .  c o m*/
 * @param offeringID
 *            Offering identifier
 * @param session
 *            Hibernate session
 * @return FOI identifiers for offering
 */
@Deprecated
@SuppressWarnings("unchecked")
public static List<String> getFeatureOfInterestIdentifiersForOffering(String offeringID, Session session) {
    Criteria c = session.createCriteria(Observation.class).add(Restrictions.eq(Observation.DELETED, false));
    c.createCriteria(Observation.FEATURE_OF_INTEREST)
            .setProjection(Projections.distinct(Projections.property(FeatureOfInterest.IDENTIFIER)));
    c.createCriteria(Observation.OFFERINGS).add(Restrictions.eq(Offering.IDENTIFIER, offeringID));
    return c.list();
}

From source file:org.n52.sos.ds.hibernate.util.HibernateCriteriaQueryUtilities.java

License:Open Source License

@Deprecated
@SuppressWarnings("unchecked")
public static List<String> getProcedureIdentifiersForOffering(String offeringID, Session session) {
    Criteria c = session.createCriteria(Observation.class).add(Restrictions.eq(Observation.DELETED, false));
    c.createCriteria(Observation.PROCEDURE)
            .setProjection(Projections.distinct(Projections.property(Procedure.IDENTIFIER)));
    c.createCriteria(Observation.OFFERINGS).add(Restrictions.eq(Offering.IDENTIFIER, offeringID));
    return c.list();
}

From source file:org.n52.sos.ds.hibernate.util.HibernateCriteriaQueryUtilities.java

License:Open Source License

@Deprecated
@SuppressWarnings("unchecked")
public static List<String> getObservablePropertyIdentifiersForOffering(String offeringID, Session session) {
    Criteria c = session.createCriteria(Observation.class).add(Restrictions.eq(Observation.DELETED, false));
    c.createCriteria(Observation.OBSERVABLE_PROPERTY)
            .setProjection(Projections.distinct(Projections.property(ObservableProperty.IDENTIFIER)));
    c.createCriteria(Observation.OFFERINGS).add(Restrictions.eq(Offering.IDENTIFIER, offeringID));
    return c.list();
}

From source file:org.n52.sos.ds.hibernate.util.HibernateCriteriaQueryUtilities.java

License:Open Source License

@Deprecated
@SuppressWarnings("unchecked")
public static List<String> getFeatureOfInterestIdentifiersForObservationConstellation(
        ObservationConstellation oc, Session session) {
    Criteria criteria = session.createCriteria(Observation.class)
            .add(Restrictions.eq(Observation.DELETED, false))
            .add(Restrictions.eq(Observation.PROCEDURE, oc.getProcedure()))
            .add(Restrictions.eq(Observation.OBSERVABLE_PROPERTY, oc.getObservableProperty()));
    criteria.createCriteria(Observation.OFFERINGS)
            .add(Restrictions.eq(Offering.ID, oc.getOffering().getOfferingId()));
    criteria.createCriteria(Observation.FEATURE_OF_INTEREST)
            .setProjection(Projections.distinct(Projections.property(FeatureOfInterest.IDENTIFIER)));
    return criteria.list();
}