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.dao.FeatureOfInterestTypeDAO.java

License:Open Source License

/**
 * Get all featureOfInterest types//  w  w w .  ja v a2 s  .  c  o m
 * 
 * @param session
 *            Hibernate session
 * @return All featureOfInterest types
 */
@SuppressWarnings("unchecked")
public List<String> getFeatureOfInterestTypes(final Session session) {
    Criteria criteria = session.createCriteria(FeatureOfInterestType.class)
            .add(Restrictions.ne(FeatureOfInterestType.FEATURE_OF_INTEREST_TYPE, OGCConstants.UNKNOWN))
            .setProjection(
                    Projections.distinct(Projections.property(FeatureOfInterestType.FEATURE_OF_INTEREST_TYPE)));

    LOGGER.debug("QUERY getFeatureOfInterestTypes(): {}", HibernateHelper.getSqlString(criteria));
    return criteria.list();
}

From source file:org.n52.sos.ds.hibernate.dao.FeatureOfInterestTypeDAO.java

License:Open Source License

/**
 * Get featureOfInterest type objects for featureOfInterest identifiers
 * // w w w.j  a v a2 s . c o m
 * @param featureOfInterestIdentifiers
 *            FeatureOfInterest identifiers
 * @param session
 *            Hibernate session
 * @return FeatureOfInterest type objects
 */
@SuppressWarnings("unchecked")
public List<String> getFeatureOfInterestTypesForFeatureOfInterest(
        final Collection<String> featureOfInterestIdentifiers, final Session session) {
    Criteria criteria = session.createCriteria(FeatureOfInterest.class)
            .add(Restrictions.in(FeatureOfInterest.IDENTIFIER, featureOfInterestIdentifiers));
    criteria.createCriteria(FeatureOfInterest.FEATURE_OF_INTEREST_TYPE).setProjection(
            Projections.distinct(Projections.property(FeatureOfInterestType.FEATURE_OF_INTEREST_TYPE)));
    LOGGER.debug("QUERY getFeatureOfInterestTypesForFeatureOfInterest(featureOfInterestIdentifiers): {}",
            HibernateHelper.getSqlString(criteria));
    return criteria.list();
}

From source file:org.n52.sos.ds.hibernate.dao.i18n.AbstractHibernateI18NDAO.java

License:Open Source License

@Override
@SuppressWarnings("unchecked")
public Collection<Locale> getAvailableLocales(Session session) throws OwsExceptionReport {
    Criteria criteria = session.createCriteria(getHibernateEntityClass());
    criteria.setProjection(Projections.distinct(Projections.property(AbstractHibernateI18NMetadata.LOCALE)));
    return criteria.list();
}

From source file:org.n52.sos.ds.hibernate.dao.ObservablePropertyDAO.java

License:Open Source License

/**
 * Get observable property identifiers for offering identifier
 *
 * @param offeringIdentifier//  w  w w . ja v a 2  s . co  m
 *            Offering identifier
 * @param session
 *            Hibernate session
 * @return Observable property identifiers
 * @throws CodedException
 *             If an error occurs
 */
@SuppressWarnings("unchecked")
public List<String> getObservablePropertyIdentifiersForOffering(final String offeringIdentifier,
        final Session session) throws OwsExceptionReport {
    final boolean flag = HibernateHelper.isEntitySupported(ObservationConstellation.class);
    Criteria c = null;

    if (flag) {
        c = getDefaultCriteria(session);
        c.add(Subqueries.propertyIn(Procedure.ID,
                getDetachedCriteriaObservablePropertiesForOfferingFromObservationConstellation(
                        offeringIdentifier, session)));
        c.setProjection(Projections.distinct(Projections.property(ObservableProperty.IDENTIFIER)));
    } else {
        AbstractObservationDAO observationDAO = DaoFactory.getInstance().getObservationDAO();
        c = observationDAO.getDefaultObservationInfoCriteria(session);
        if (observationDAO instanceof SeriesObservationDAO) {
            Criteria seriesCriteria = c.createCriteria(SeriesObservationInfo.SERIES);
            seriesCriteria.createCriteria(Series.OBSERVABLE_PROPERTY)
                    .setProjection(Projections.distinct(Projections.property(ObservableProperty.IDENTIFIER)));

        } else {
            c.createCriteria(AbstractObservation.OBSERVABLE_PROPERTY)
                    .setProjection(Projections.distinct(Projections.property(ObservableProperty.IDENTIFIER)));
        }
        new OfferingDAO().addOfferingRestricionForObservation(c, offeringIdentifier);
    }
    LOGGER.debug(
            "QUERY getProcedureIdentifiersForOffering(offeringIdentifier) using ObservationContellation entitiy ({}): {}",
            flag, HibernateHelper.getSqlString(c));
    return c.list();
}

From source file:org.n52.sos.ds.hibernate.dao.ObservablePropertyDAO.java

License:Open Source License

/**
 * Get observable property identifiers for procedure identifier
 *
 * @param procedureIdentifier//from w w w .ja va 2 s.co m
 *            Procedure identifier
 * @param session
 *            Hibernate session
 * @return Observable property identifiers
 */
@SuppressWarnings("unchecked")
public List<String> getObservablePropertyIdentifiersForProcedure(final String procedureIdentifier,
        final Session session) {
    final boolean flag = HibernateHelper.isEntitySupported(ObservationConstellation.class);
    Criteria c = null;
    if (flag) {
        c = getDefaultCriteria(session);
        c.setProjection(Projections.distinct(Projections.property(ObservableProperty.IDENTIFIER)));
        c.add(Subqueries.propertyIn(ObservableProperty.ID,
                getDetachedCriteriaObservablePropertyForProcedureFromObservationConstellation(
                        procedureIdentifier, session)));
    } else {
        if (HibernateHelper.isEntitySupported(Series.class)) {
            c = getDefaultCriteria(session);
            c.setProjection(Projections.distinct(Projections.property(ObservableProperty.IDENTIFIER)));
            c.add(Subqueries.propertyIn(ObservableProperty.ID,
                    getDetachedCriteriaObservablePropertiesForProcedureFromSeries(procedureIdentifier,
                            session)));
        } else {
            c = session.createCriteria(ObservationInfo.class)
                    .add(Restrictions.eq(AbstractObservation.DELETED, false));
            c.createCriteria(ObservationInfo.OBSERVABLE_PROPERTY)
                    .setProjection(Projections.distinct(Projections.property(ObservableProperty.IDENTIFIER)));
            c.createCriteria(ObservationInfo.PROCEDURE)
                    .add(Restrictions.eq(Procedure.IDENTIFIER, procedureIdentifier));
        }
    }
    LOGGER.debug(
            "QUERY getObservablePropertyIdentifiersForProcedure(observablePropertyIdentifier) using ObservationContellation entitiy ({}): {}",
            flag, HibernateHelper.getSqlString(c));
    return c.list();
}

From source file:org.n52.sos.ds.hibernate.dao.ObservablePropertyDAO.java

License:Open Source License

/**
 * Get Hibernate Detached Criteria to get ObservableProperty entities from
 * ObservationConstellation for procedure identifier
 *
 * @param procedureIdentifier//  w  w w.j  ava 2s .c om
 *            Procedure identifier parameter
 * @param session
 *            Hibernate session
 * @return Hibernate Detached Criteria
 */
private DetachedCriteria getDetachedCriteriaObservablePropertyForProcedureFromObservationConstellation(
        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.OBSERVABLE_PROPERTY)));
    return detachedCriteria;
}

From source file:org.n52.sos.ds.hibernate.dao.ObservablePropertyDAO.java

License:Open Source License

/**
 * Get Hibernate Detached Criteria to get ObservableProperty entities from
 * Series for procedure identifier/*  w  w  w .j  av a2 s  .  c  om*/
 *
 * @param procedureIdentifier
 *            Procedure identifier parameter
 * @param session
 *            Hibernate session
 * @return Hibernate Detached Criteria
 */
private DetachedCriteria getDetachedCriteriaObservablePropertiesForProcedureFromSeries(
        String procedureIdentifier, Session session) {
    final DetachedCriteria detachedCriteria = DetachedCriteria.forClass(Series.class);
    detachedCriteria.add(Restrictions.eq(Series.DELETED, false));
    detachedCriteria.createCriteria(Series.PROCEDURE)
            .add(Restrictions.eq(Procedure.IDENTIFIER, procedureIdentifier));
    detachedCriteria.setProjection(Projections.distinct(Projections.property(Series.OBSERVABLE_PROPERTY)));
    return detachedCriteria;
}

From source file:org.n52.sos.ds.hibernate.dao.ObservablePropertyDAO.java

License:Open Source License

/**
 * Get Hibernate Detached Criteria to get ObservableProperty entities from
 * ObservationConstellation for offering identifier
 *
 * @param offeringIdentifier// w w w .jav  a2s.com
 *            Offering identifier parameter
 * @param session
 *            Hibernate session
 * @return Hibernate Detached Criteria
 */
private DetachedCriteria getDetachedCriteriaObservablePropertiesForOfferingFromObservationConstellation(
        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.OBSERVABLE_PROPERTY)));
    return detachedCriteria;
}

From source file:org.n52.sos.ds.hibernate.dao.ObservationDAO.java

License:Open Source License

@SuppressWarnings("unchecked")
public Collection<String> getObservationIdentifiers(String procedureIdentifier, Session session) {
    Criteria criteria = session.createCriteria(ObservationInfo.class)
            .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 ObservationDAO.getObservationIdentifiers(procedureIdentifier): {}",
            HibernateHelper.getSqlString(criteria));
    return criteria.list();
}

From source file:org.n52.sos.ds.hibernate.dao.OfferingDAO.java

License:Open Source License

/**
 * Get offering identifiers for procedure identifier
 *
 * @param procedureIdentifier/* ww w.  j a  v a 2  s  . co m*/
 *            Procedure identifier
 * @param session
 *            Hibernate session
 * @return Offering identifiers
 * @throws OwsExceptionReport
 */
@SuppressWarnings("unchecked")
public List<String> getOfferingIdentifiersForProcedure(final String procedureIdentifier, 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,
                getDetachedCriteriaOfferingForProcedureFromObservationConstellation(procedureIdentifier,
                        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.PROCEDURE)
                    .add(Restrictions.eq(Procedure.IDENTIFIER, procedureIdentifier));

        } else {
            c.createCriteria(AbstractObservation.PROCEDURE)
                    .add(Restrictions.eq(Procedure.IDENTIFIER, procedureIdentifier));
        }
    }
    LOGGER.debug(
            "QUERY getOfferingIdentifiersForProcedure(procedureIdentifier) using ObservationContellation entitiy ({}): {}",
            flag, HibernateHelper.getSqlString(c));
    return c.list();
}