/** * Creates a sub-query IN expression for this property. I.e., {@code [prop] IN [subquery]} * * @param subselect The sub-query * * @return The expression * * @see Subqueries#propertyIn(String, DetachedCriteria) */ public Criterion in(DetachedCriteria subselect) { return Subqueries.propertyIn( getPropertyName(), subselect ); }
/** * Convenience method that adds an expression to the given <code>criteria</code> according to * what types of person objects is wanted * * @param criteria * @param personType * @return the given criteria (for chaining) */ private Criteria getCriteriaPersonModifier(Criteria criteria, List<PERSON_TYPE> personTypes) { if (personTypes.contains(PERSON_TYPE.PATIENT)) { DetachedCriteria crit = DetachedCriteria.forClass(Patient.class, "patient").setProjection( Property.forName("patientId")); criteria.add(Subqueries.propertyIn("person.personId", crit)); } if (personTypes.contains(PERSON_TYPE.USER)) { DetachedCriteria crit = DetachedCriteria.forClass(User.class, "user").setProjection(Property.forName("userId")); criteria.add(Subqueries.propertyIn("person.personId", crit)); } return criteria; }
subquery.setProjection(Projections.property("ff.form.formId")); subquery.add(Restrictions.in("ff.formFieldId", anyFormFieldIds)); crit.add(Subqueries.propertyIn("f.formId", subquery));
protected Criteria addDatasetFilters(DbQuery query, Criteria criteria) { DetachedCriteria filter = createDatasetSubqueryViaExplicitJoin(query); return criteria.add(Subqueries.propertyIn(DescribableEntity.PROPERTY_ID, filter)); }
public Criterion in(DetachedCriteria subselect) { return Subqueries.propertyIn( getPropertyName(), subselect ); }
public Criterion in(DetachedCriteria subselect) { return Subqueries.propertyIn( getPropertyName(), subselect ); }
private Criteria getDefaultCriteria(Session session) { Criteria c = session.createCriteria(ProcedureEntity.class).setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); try { c.add(Subqueries.propertyIn(ProcedureEntity.PROPERTY_ID, getDetachedCriteriaProceduresForFromSeries(session))); } catch (OwsExceptionReport e) { } return c; }
private Criteria getDefaultCriteria(Session session) { Criteria c = session.createCriteria(ProcedureEntity.class).setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); try { c.add(Subqueries.propertyIn(ProcedureEntity.PROPERTY_ID, getDetachedCriteriaProceduresForFromSeries(session))); } catch (OwsExceptionReport e) { } return c; }
protected Criteria getDefaultCriteria(String alias, DbQuery query) { alias = alias != null ? alias : getDefaultAlias(); // DetachedCriteria filter = createSeriesSubQuery(alias, query); DetachedCriteria filter = createSeriesSubQueryViaExplicitJoin(alias, query); return session.createCriteria(getEntityClass(), alias) .add(Subqueries.propertyIn("pkid", filter)); }
@Override protected Criterion createResultCriterion(ComparisonFilter filter) { return getResultSubqueries(filter) // just get the dataset ID from the data entities .map(q -> q.setProjection(Projections.property(DataEntity.PROPERTY_DATASET))) // create a property IN expression for each query .map(q -> Subqueries.propertyIn(DatasetEntity.PROPERTY_ID, q)) // and wrap everything into a disjunction .collect(MoreRestrictions.toDisjunction()); }
@Override protected Criterion createResultCriterion(ComparisonFilter filter) { return getResultSubqueries(filter) // just get the ID .map(q -> q.setProjection(Projections.property(DataEntity.PROPERTY_ID))) // create a property IN expression for each query .map(q -> Subqueries.propertyIn(DataEntity.PROPERTY_ID, q)) // and wrap everything into a disjunction .collect(MoreRestrictions.toDisjunction()); }
@SuppressWarnings("unchecked") // Hibernate public List<GeometryEntity> getGeometriesOrderedByTimestamp(DbQuery parameters) { Criteria criteria = session.createCriteria(SamplingGeometryEntity.class); DetachedCriteria filter = parameters.createDetachedFilterCriteria("pkid"); criteria.add(Subqueries.propertyIn(COLUMN_SERIES_PKID, filter)); criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); criteria.addOrder(Order.asc(COLUMN_TIMESTAMP)); parameters.addSpatialFilterTo(criteria, parameters); return (List<GeometryEntity>) criteria.list(); }
private T getDataValueAt(Date timestamp, String column, DatasetEntity series) { LOGGER.debug("get instances @{} for '{}'", timestamp, series.getPkid()); Criteria criteria = getDefaultCriteria() .add(Restrictions.eq(COLUMN_SERIES_PKID, series.getPkid())) .add(Restrictions.eq(column, timestamp)); DetachedCriteria filter = forClass(DatasetEntity.class) .setProjection(projectionList().add(property("pkid"))); criteria.add(Subqueries.propertyIn(COLUMN_SERIES_PKID, filter)); return (T) criteria.uniqueResult(); }
private Long count(DetachedCriteria subquery, AbstractDao< ? > dao, DbQuery query) { Criteria criteria = dao.getDefaultCriteria(query); Criteria elements = criteria.add(Subqueries.propertyIn(DescribableEntity.PROPERTY_ID, subquery)); return (Long) elements.setProjection(Projections.rowCount()) .uniqueResult(); }
protected Criteria addFilters(Criteria criteria, DbQuery query) { String seriesProperty = getSeriesProperty(); DetachedCriteria filter = query.createDetachedFilterCriteria(seriesProperty); criteria = query.addPlatformTypeFilter(seriesProperty, criteria); criteria = query.addDatasetTypeFilter(seriesProperty, criteria); criteria = query.addLimitAndOffsetFilter(criteria); String filterProperty = seriesProperty == null || seriesProperty.isEmpty() ? "pkid" : seriesProperty + ".pkid"; return query.addSpatialFilterTo(criteria, query) .add(propertyIn(filterProperty, filter)); }
@Override protected Criterion createDataCriterion(Criterion criterion) { DetachedCriteria subquery = DetachedCriteria.forClass(DataEntity.class) .setProjection(Projections.property(DataEntity.PROPERTY_DATASET)) .add(Restrictions.eq(DataEntity.PROPERTY_DELETED, Boolean.FALSE)) .add(criterion); return Subqueries.propertyIn(DatasetEntity.PROPERTY_ID, subquery); }
private void addParameterRestriction(Criteria c, NamedValue<?> hdp) throws OwsExceptionReport { c.add(Subqueries.propertyIn(DataEntity.PROPERTY_PARAMETERS, getParameterRestriction(c, hdp.getName().getHref(), hdp.getValue().getValue(), hdp.getValue().accept(getParameterFactory()).getClass()))); }
private void addParameterRestriction(Criteria c, NamedValue<?> hdp) throws OwsExceptionReport { c.add(Subqueries.propertyIn(DataEntity.PROPERTY_PARAMETERS, getParameterRestriction(c, hdp.getName().getHref(), hdp.getValue().getValue(), hdp.getValue().accept(getParameterFactory()).getClass()))); }
private void addAssessmentType(Criteria c, String assessmentType) { final DetachedCriteria detachedCriteria = DetachedCriteria.forClass(EReportingDatasetEntity.class); detachedCriteria.add(Restrictions.eq(DatasetEntity.PROPERTY_DELETED, false)); detachedCriteria.createCriteria(EReportingDatasetEntity.SAMPLING_POINT) .createCriteria(EReportingSamplingPointEntity.ASSESSMENTTYPE). add(Restrictions.ilike(EReportingAssessmentTypeEntity.ASSESSMENT_TYPE, assessmentType)); detachedCriteria.setProjection(Projections.distinct(Projections.property(DatasetEntity.PROPERTY_ID))); c.add(Subqueries.propertyIn(DatasetEntity.PROPERTY_ID, detachedCriteria)); }
private void addAssessmentType(Criteria c, String assessmentType) { final DetachedCriteria detachedCriteria = DetachedCriteria.forClass(EReportingDatasetEntity.class); detachedCriteria.add(Restrictions.eq(DatasetEntity.PROPERTY_DELETED, false)); detachedCriteria.createCriteria(EReportingDatasetEntity.SAMPLING_POINT) .createCriteria(EReportingSamplingPointEntity.ASSESSMENTTYPE). add(Restrictions.ilike(EReportingAssessmentTypeEntity.ASSESSMENT_TYPE, assessmentType)); detachedCriteria.setProjection(Projections.distinct(Projections.property(DatasetEntity.PROPERTY_ID))); c.add(Subqueries.propertyIn(DatasetEntity.PROPERTY_ID, detachedCriteria)); }