List of usage examples for org.hibernate.criterion DetachedCriteria setProjection
public DetachedCriteria setProjection(Projection projection)
From source file:fr.gael.dhus.service.ProductService.java
License:Open Source License
/** * Odata dedicated Services//from w ww . j a v a 2 s. co m */ @Transactional(readOnly = true) @Cacheable(value = "product_count", key = "{#criteria, #uuid}") public int countProducts(DetachedCriteria criteria, String uuid) { if (criteria == null) { criteria = DetachedCriteria.forClass(Product.class); } // count only processed products criteria.add(Restrictions.eq("processed", true)); if (uuid != null) { List<Long> product_ids = collectionService.getProductIds(uuid); criteria.add(Restrictions.in("id", product_ids)); } criteria.setProjection(Projections.rowCount()); return productDao.count(criteria); }
From source file:fr.gael.dhus.service.UserService.java
License:Open Source License
/** * Counts corresponding users at the given criteria. * * @param criteria criteria contains filter of required collection. * @return number of corresponding users. *//*from w w w .j ava 2 s . co m*/ @Transactional(readOnly = true) public int countUsers(DetachedCriteria criteria) { if (criteria == null) { criteria = DetachedCriteria.forClass(User.class); } criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); criteria.setProjection(Projections.rowCount()); return userDao.count(criteria); }
From source file:fr.mcc.ginco.dao.hibernate.AssociativeRelationshipDAO.java
License:CeCILL license
@Override public List<String> getAssociatedConcepts(ThesaurusConcept concept) { DetachedCriteria d1 = DetachedCriteria.forClass(AssociativeRelationship.class, "ar1"); d1.setProjection(Projections.projectionList().add(Projections.property("ar1.identifier.concept2"))); d1.add(Restrictions.eq("identifier.concept1", concept.getIdentifier())); DetachedCriteria d2 = DetachedCriteria.forClass(AssociativeRelationship.class, "ar2"); d2.setProjection(Projections.projectionList().add(Projections.property("ar2.identifier.concept1"))); d2.add(Restrictions.eq("identifier.concept2", concept.getIdentifier())); Criteria criteria = getCurrentSession().createCriteria(ThesaurusConcept.class, "tc") .add(Restrictions.or(Subqueries.propertyIn("tc.identifier", d1), Subqueries.propertyIn("tc.identifier", d2))) .setProjection(Projections.property("tc.identifier")); return criteria.list(); }
From source file:gov.nih.nci.cananolab.service.sample.helper.AdvancedSampleServiceHelper.java
License:BSD License
private DetachedCriteria getDatumSubquery(CharacterizationQueryBean charQuery, String projectionProperty) { DetachedCriteria subCrit = DetachedCriteria.forClass(Datum.class, "subCrit"); subCrit.setProjection(Projections.distinct(Property.forName(projectionProperty))); Criterion datumCrit = getDatumCriterion(charQuery); subCrit.add(datumCrit);// w ww . j ava 2 s . co m subCrit.add(Restrictions.eqProperty("subCrit." + projectionProperty, "rootCrit.id")); return subCrit; }
From source file:gov.nih.nci.cananolab.service.sample.helper.AdvancedSampleServiceHelper.java
License:BSD License
private DetachedCriteria getCharacterizationSubquery(CharacterizationQueryBean charQuery, String projectionProperty) { DetachedCriteria subCrit = DetachedCriteria.forClass(Characterization.class, "subCrit"); subCrit.setProjection(Projections.distinct(Property.forName(projectionProperty))); // join finding and datum if (!StringUtils.isEmpty(charQuery.getDatumName())) { subCrit.createAlias("subCrit.findingCollection", "finding", CriteriaSpecification.LEFT_JOIN); subCrit.createAlias("finding.datumCollection", "datum", CriteriaSpecification.LEFT_JOIN); }//from w ww. j av a 2s . co m Criterion charCrit = getCharacterizationCriterion(charQuery, ""); subCrit.add(charCrit); subCrit.add(Restrictions.eqProperty("subCrit." + projectionProperty, "rootCrit.id")); return subCrit; }
From source file:gov.nih.nci.cananolab.service.sample.helper.AdvancedSampleServiceHelper.java
License:BSD License
private DetachedCriteria getFunctionalizingEntitySubquery(CompositionQueryBean query, String funcEntityAlias, String projectionProperty) throws Exception { DetachedCriteria subCrit = DetachedCriteria.forClass(FunctionalizingEntity.class, "subCrit"); subCrit.setProjection(Projections.distinct(Property.forName(projectionProperty))); Criterion funcCrit = getFunctionalizingEntityCriterion(query, ""); subCrit.add(funcCrit);//from w w w . ja v a 2s. c o m subCrit.add(Restrictions.eqProperty("subCrit." + projectionProperty, funcEntityAlias + "id")); return subCrit; }
From source file:gov.nih.nci.cananolab.service.sample.helper.AdvancedSampleServiceHelper.java
License:BSD License
private DetachedCriteria getFunctionSubquery(CompositionQueryBean query, String funcAlias1, String funcAlias2, String projectionProperty) throws Exception { DetachedCriteria subCrit = DetachedCriteria.forClass(Function.class, "subCrit"); subCrit.setProjection(Projections.distinct(Property.forName(projectionProperty))); Criterion funcCrit = getFunctionCriterion(query, "", ""); subCrit.add(funcCrit);/*from www . j a va 2s .com*/ if (funcAlias1.equals(funcAlias2)) { subCrit.add(Restrictions.eqProperty("subCrit." + projectionProperty, funcAlias1 + "id")); } else { subCrit.add(Restrictions.or(Restrictions.eqProperty("subCrit." + projectionProperty, funcAlias1 + "id"), Restrictions.eqProperty("subCrit." + projectionProperty, funcAlias2 + "id"))); } return subCrit; }
From source file:gov.nih.nci.cananolab.service.sample.helper.AdvancedSampleServiceHelper.java
License:BSD License
private DetachedCriteria getNanomaterialEntitySubquery(CompositionQueryBean query, String nanoEntityAlias, String projectionProperty) throws Exception { DetachedCriteria subCrit = DetachedCriteria.forClass(NanomaterialEntity.class, "subCrit"); subCrit.setProjection(Projections.distinct(Property.forName(projectionProperty))); // join composing element if (!StringUtils.isEmpty(query.getChemicalName())) { subCrit.createAlias("subCrit.composingElementCollection", "compElement", CriteriaSpecification.LEFT_JOIN); }//from ww w .java 2 s . c o m Criterion nanoCrit = getNanomaterialEntityCriterion(query, ""); subCrit.add(nanoCrit); subCrit.add(Restrictions.eqProperty("subCrit." + projectionProperty, nanoEntityAlias + "id")); return subCrit; }
From source file:gov.nih.nci.cananolab.service.sample.helper.AdvancedSampleServiceHelper.java
License:BSD License
private DetachedCriteria getPointOfContactSubquery(SampleQueryBean query, String pocAlias1, String pocAlias2, String projectionProperty) { DetachedCriteria subCrit = DetachedCriteria.forClass(PointOfContact.class, "subCrit"); subCrit.createAlias("subCrit.organization", "organization", CriteriaSpecification.LEFT_JOIN); subCrit.setProjection(Projections.distinct(Property.forName("id"))); Disjunction pocDisjunction = getPointOfContactDisjunctionPerQuery(query, "", ""); subCrit.add(pocDisjunction);/*from w w w. ja v a 2s .c om*/ if (pocAlias1.equals(pocAlias2)) { subCrit.add(Restrictions.eqProperty("subCrit." + projectionProperty, pocAlias1 + "id")); } else { subCrit.add(Restrictions.or(Restrictions.eqProperty("subCrit." + projectionProperty, pocAlias1 + "id"), Restrictions.eqProperty("subCrit." + projectionProperty, pocAlias2 + "id"))); } return subCrit; }
From source file:gov.nih.nci.cananolab.service.sample.helper.SampleServiceHelper.java
License:BSD License
public List<String> findSampleIdsByOwner(String currentOwner) throws Exception { List<String> sampleIds = new ArrayList<String>(); // can't query for the entire Sample object due to // limitations in pagination in SDK // Sample sample = new Sample(); ProjectionList projectionList = Projections.projectionList(); projectionList.add(Projections.property("id")); DetachedCriteria crit = DetachedCriteria.forClass(Sample.class); crit.setProjection(Projections.distinct(projectionList)); Criterion crit1 = Restrictions.eq("createdBy", currentOwner); // in case of copy createdBy is like lijowskim:COPY Criterion crit2 = Restrictions.like("createdBy", currentOwner + ":", MatchMode.START); crit.add(Expression.or(crit1, crit2)); CaNanoLabApplicationService appService = (CaNanoLabApplicationService) ApplicationServiceProvider .getApplicationService();//from w w w .j av a 2 s .c o m List results = appService.query(crit); for (int i = 0; i < results.size(); i++) { String id = results.get(i).toString(); if (springSecurityAclService.currentUserHasReadPermission(Long.valueOf(id), SecureClassesEnum.SAMPLE.getClazz()) || springSecurityAclService.currentUserHasWritePermission(Long.valueOf(id), SecureClassesEnum.SAMPLE.getClazz())) { sampleIds.add(id); } else { logger.debug("User doesn't have access to sample of ID: " + id); } } return sampleIds; }