Example usage for org.hibernate.criterion DetachedCriteria setProjection

List of usage examples for org.hibernate.criterion DetachedCriteria setProjection

Introduction

In this page you can find the example usage for org.hibernate.criterion DetachedCriteria setProjection.

Prototype

public DetachedCriteria setProjection(Projection projection) 

Source Link

Document

Set the projection to use.

Usage

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