Example usage for org.hibernate.criterion DetachedCriteria createAlias

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

Introduction

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

Prototype

@Deprecated
public DetachedCriteria createAlias(String associationPath, String alias, int joinType) 

Source Link

Document

Deprecated!

Usage

From source file:gov.nih.nci.cananolab.service.sample.helper.AdvancedSampleServiceHelper.java

License:BSD License

private List<FunctionalizingEntity> findFunctionalizingEntitiesBy(String sampleId,
        AdvancedSampleSearchBean searchBean) throws Exception {
    List<FunctionalizingEntity> entities = new ArrayList<FunctionalizingEntity>();
    if (!searchBean.getHasAgentMaterial()) {
        return entities;
    }//  w  w w.j av  a 2  s  .c om
    Long id = new Long(sampleId);
    CaNanoLabApplicationService appService = (CaNanoLabApplicationService) ApplicationServiceProvider
            .getApplicationService();
    DetachedCriteria crit = DetachedCriteria.forClass(FunctionalizingEntity.class);
    Junction junction = getFunctionalizingEntityJunction(searchBean, crit);
    if (junction != null) {
        crit.createAlias("sampleComposition", "comp", CriteriaSpecification.LEFT_JOIN);
        crit.createAlias("comp.sample", "sample", CriteriaSpecification.LEFT_JOIN);
        crit.add(Restrictions.eq("sample.id", id));
        crit.add(junction);
        crit.setFetchMode("functionCollection", FetchMode.JOIN);
        crit.setFetchMode("functionCollection.targetCollection", FetchMode.JOIN);
        crit.setFetchMode("fileCollection", FetchMode.JOIN);
        crit.setFetchMode("fileCollection.keywordCollection", FetchMode.JOIN);
        crit.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
        List results = appService.query(crit);
        for (int i = 0; i < results.size(); i++) {
            FunctionalizingEntity entity = (FunctionalizingEntity) results.get(i);
            entities.add(entity);
        }
    } else if (searchBean.getFuncEntityCount() > 1) {
        // Hibernate Criteria API doesn't support union, union in java
        for (CompositionQueryBean query : searchBean.getCompositionQueries()) {
            if (query.getCompositionType().equals("functionalizing entity")) {
                crit = DetachedCriteria.forClass(FunctionalizingEntity.class);
                crit.createAlias("sampleComposition", "comp", CriteriaSpecification.LEFT_JOIN);
                crit.createAlias("comp.sample", "sample", CriteriaSpecification.LEFT_JOIN);
                crit.add(Restrictions.eq("sample.id", id));
                DetachedCriteria subCrit = getFunctionalizingEntitySubquery(query, "", "id");
                crit.add(Subqueries.exists(subCrit));
                crit.setFetchMode("functionCollection", FetchMode.JOIN);
                crit.setFetchMode("functionCollection.targetCollection", FetchMode.JOIN);
                crit.setFetchMode("fileCollection", FetchMode.JOIN);
                crit.setFetchMode("fileCollection.keywordCollection", FetchMode.JOIN);
                crit.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
                List results = appService.query(crit);
                for (int i = 0; i < results.size(); i++) {
                    FunctionalizingEntity entity = (FunctionalizingEntity) results.get(i);
                    if (!entities.contains(entity)) {
                        entities.add(entity);
                    }
                }
            }
        }
    }
    return entities;
}

From source file:gov.nih.nci.cananolab.service.sample.helper.AdvancedSampleServiceHelper.java

License:BSD License

private List<Function> findFunctionsBy(String sampleId, AdvancedSampleSearchBean searchBean) throws Exception {
    List<Function> functions = new ArrayList<Function>();
    if (!searchBean.getHasFunction()) {
        return functions;
    }/* ww w  .ja  v a 2  s .c o m*/
    Long id = new Long(sampleId);
    CaNanoLabApplicationService appService = (CaNanoLabApplicationService) ApplicationServiceProvider
            .getApplicationService();
    DetachedCriteria crit = DetachedCriteria.forClass(Function.class);
    Junction junction = getFunctionJunction(searchBean, crit);
    if (junction != null) {
        crit.createAlias("composingElement", "ce", CriteriaSpecification.LEFT_JOIN);
        crit.createAlias("ce.nanomaterialEntity", "nanoEntity", CriteriaSpecification.LEFT_JOIN);
        crit.createAlias("nanoEntity.sampleComposition", "comp", CriteriaSpecification.LEFT_JOIN);
        crit.createAlias("comp.sample", "sample", CriteriaSpecification.LEFT_JOIN);
        crit.createAlias("functionalizingEntity", "funcEntity", CriteriaSpecification.LEFT_JOIN);
        crit.createAlias("funcEntity.sampleComposition", "comp2", CriteriaSpecification.LEFT_JOIN);
        crit.createAlias("comp2.sample", "sample2", CriteriaSpecification.LEFT_JOIN);
        crit.add(Restrictions.or(Restrictions.eq("sample.id", id), Restrictions.eq("sample2.id", id)));
        crit.add(junction);
        crit.setFetchMode("targetCollection", FetchMode.JOIN);

        List results = appService.query(crit);
        for (int i = 0; i < results.size(); i++) {
            Function function = (Function) results.get(i);
            functions.add(function);
        }
    } else if (searchBean.getFuncCount() > 1) {
        // Hibernate Criteria API doesn't support union, union in java
        for (CompositionQueryBean query : searchBean.getCompositionQueries()) {
            if (query.getCompositionType().equals("function")) {
                crit = DetachedCriteria.forClass(Function.class);
                crit.createAlias("composingElement", "ce", CriteriaSpecification.LEFT_JOIN);
                crit.createAlias("ce.nanomaterialEntity", "nanoEntity", CriteriaSpecification.LEFT_JOIN);
                crit.createAlias("nanoEntity.sampleComposition", "comp", CriteriaSpecification.LEFT_JOIN);
                crit.createAlias("comp.sample", "sample", CriteriaSpecification.LEFT_JOIN);
                crit.createAlias("functionalizingEntity", "funcEntity", CriteriaSpecification.LEFT_JOIN);
                crit.createAlias("funcEntity.sampleComposition", "comp2", CriteriaSpecification.LEFT_JOIN);
                crit.createAlias("comp2.sample", "sample2", CriteriaSpecification.LEFT_JOIN);
                crit.add(Restrictions.or(Restrictions.eq("sample.id", id), Restrictions.eq("sample2.id", id)));
                DetachedCriteria subCrit = getFunctionSubquery(query, "", "", "id");
                crit.add(Subqueries.exists(subCrit));
                crit.setFetchMode("targetCollection", FetchMode.JOIN);
                crit.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
                List results = appService.query(crit);
                for (int i = 0; i < results.size(); i++) {
                    Function function = (Function) results.get(i);
                    if (!functions.contains(function)) {
                        functions.add(function);
                    }
                }
            }
        }
    }
    return functions;
}

From source file:gov.nih.nci.cananolab.service.sample.helper.AdvancedSampleServiceHelper.java

License:BSD License

private List<NanomaterialEntity> findNanomaterialEntitiesBy(String sampleId,
        AdvancedSampleSearchBean searchBean) throws Exception {
    List<NanomaterialEntity> entities = new ArrayList<NanomaterialEntity>();
    Long id = new Long(sampleId);
    if (!searchBean.getHasNanomaterial()) {
        return entities;
    }/*from  w  w  w  .ja va2 s.  c  o  m*/
    DetachedCriteria crit = DetachedCriteria.forClass(NanomaterialEntity.class);
    CaNanoLabApplicationService appService = (CaNanoLabApplicationService) ApplicationServiceProvider
            .getApplicationService();
    Junction junction = getNanomaterialEntityJunction(searchBean, crit);
    if (junction != null) {
        // join nanomaterialEntity
        if (searchBean.getHasNanomaterial() && !searchBean.getHasFunction()) {
            if (searchBean.getHasChemicalName()) {
                crit.createAlias("composingElementCollection", "compElement", CriteriaSpecification.LEFT_JOIN);
            }
        }
        crit.createAlias("sampleComposition", "comp");
        crit.createAlias("comp.sample", "sample");
        crit.add(Restrictions.eq("sample.id", id));
        crit.add(junction);
        crit.setFetchMode("fileCollection", FetchMode.JOIN);
        crit.setFetchMode("fileCollection.keywordCollection", FetchMode.JOIN);
        crit.setFetchMode("composingElementCollection", FetchMode.JOIN);
        crit.setFetchMode("composingElementCollection.inherentFunctionCollection", FetchMode.JOIN);
        crit.setFetchMode("composingElementCollection.inherentFunctionCollection.targetCollection",
                FetchMode.JOIN);
        crit.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
        List results = appService.query(crit);
        for (int i = 0; i < results.size(); i++) {
            NanomaterialEntity entity = (NanomaterialEntity) results.get(i);
            entities.add(entity);
        }
    } else if (searchBean.getNanoEntityCount() > 1) {
        // Hibernate Criteria API doesn't support union, union in java
        for (CompositionQueryBean query : searchBean.getCompositionQueries()) {
            if (query.getCompositionType().equals("nanomaterial entity")) {
                crit = DetachedCriteria.forClass(NanomaterialEntity.class);
                crit.createAlias("sampleComposition", "comp", CriteriaSpecification.LEFT_JOIN);
                crit.createAlias("comp.sample", "sample", CriteriaSpecification.LEFT_JOIN);
                if (!StringUtils.isEmpty(query.getChemicalName())) {
                    crit.createAlias("composingElementCollection", "compElement");
                }
                crit.add(Restrictions.eq("sample.id", id));
                crit.setFetchMode("fileCollection", FetchMode.JOIN);
                crit.setFetchMode("fileCollection.keywordCollection", FetchMode.JOIN);
                crit.setFetchMode("composingElementCollection", FetchMode.JOIN);
                crit.setFetchMode("composingElementCollection.inherentFunctionCollection", FetchMode.JOIN);
                crit.setFetchMode("composingElementCollection.inherentFunctionCollection.targetCollection",
                        FetchMode.JOIN);
                DetachedCriteria subCrit = getNanomaterialEntitySubquery(query, "", "id");
                crit.add(Subqueries.exists(subCrit));
                crit.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
                List results = appService.query(crit);
                for (int i = 0; i < results.size(); i++) {
                    NanomaterialEntity entity = (NanomaterialEntity) results.get(i);
                    if (!entities.contains(entity)) {
                        entities.add(entity);
                    }
                }
            }
        }
    }
    return entities;
}

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 w w . ja  v a2 s .  c o  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 void setCharacterizationCriteria(AdvancedSampleSearchBean searchBean, DetachedCriteria crit) {
    if (searchBean.getCharacterizationQueries().isEmpty()) {
        return;//from  ww w  .  ja v  a 2 s  . c  o m
    }
    // if only one query default to disjunction
    if (searchBean.getCharacterizationQueries().size() == 1
            || searchBean.getCharacterizationLogicalOperator().equals("or")) {
        // join characterization
        crit.createAlias("characterizationCollection", "chara", CriteriaSpecification.LEFT_JOIN);

        // join finding and datum
        if (searchBean.getHasDatum()) {
            crit.createAlias("chara.findingCollection", "finding", CriteriaSpecification.LEFT_JOIN);
            crit.createAlias("finding.datumCollection", "datum", CriteriaSpecification.LEFT_JOIN);
        }
        crit.add(getCharacterizationDisjunction(searchBean, crit, "chara."));
    } else {
        setCharacterizationAndCriteria(searchBean, crit, "sample.id");
    }
}

From source file:gov.nih.nci.cananolab.service.sample.helper.AdvancedSampleServiceHelper.java

License:BSD License

/**
 * Set the DetachedCriteria used for composition queries
 * //from   w  w  w.ja v  a 2 s .com
 * @param searchBean
 * @param crit
 * @throws Exception
 */
private void setCompositionCriteriaBase(AdvancedSampleSearchBean searchBean, DetachedCriteria crit)
        throws Exception {
    if (searchBean.getCompositionQueries().isEmpty()) {
        return;
    }
    // composition queries
    crit.createAlias("sampleComposition", "comp", CriteriaSpecification.LEFT_JOIN);
    Boolean hasChemicalName = searchBean.getHasChemicalName();
    // join function
    if (searchBean.getHasFunction()) {
        crit.createAlias("comp.nanomaterialEntityCollection", "nanoEntity", CriteriaSpecification.LEFT_JOIN);
        crit.createAlias("nanoEntity.composingElementCollection", "compElement",
                CriteriaSpecification.LEFT_JOIN);
        crit.createAlias("compElement.inherentFunctionCollection", "inherentFunction",
                CriteriaSpecification.LEFT_JOIN);
        crit.createAlias("comp.functionalizingEntityCollection", "funcEntity", CriteriaSpecification.LEFT_JOIN);
        crit.createAlias("funcEntity.functionCollection", "function", CriteriaSpecification.LEFT_JOIN);
    }
    // join nanomaterialEntity
    if (searchBean.getHasNanomaterial() && !searchBean.getHasFunction()) {
        crit.createAlias("comp.nanomaterialEntityCollection", "nanoEntity", CriteriaSpecification.LEFT_JOIN);
        if (hasChemicalName) {
            crit.createAlias("nanoEntity.composingElementCollection", "compElement",
                    CriteriaSpecification.LEFT_JOIN);
        }
    }
    // join functionalizing entity
    if (searchBean.getHasAgentMaterial() && !searchBean.getHasFunction()) {
        crit.createAlias("comp.functionalizingEntityCollection", "funcEntity", CriteriaSpecification.LEFT_JOIN);
    }
    Junction junction = getCompositionJunction(searchBean, crit);
    if (junction != null) {
        crit.add(junction);
    }
    /*      if (searchBean.getNanoEntityCount() > 1) {
             setNanomaterialEntityAndCriteria(searchBean, crit, "id");
          }
          if (searchBean.getFuncEntityCount() > 1) {
             setFunctionalizingEntityAndCriteria(searchBean, crit, "id");
          }
          if (searchBean.getFuncCount() > 1) {
             setFunctionAndCriteria(searchBean, crit, "id");
          }  */
}

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);
    }/*  w  w w.ja va2  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);/*  ww w  . j a v a 2  s . c o  m*/
    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:org.hoteia.qalingo.core.dao.ProductDao.java

License:Apache License

public List<ProductSku> findProductSkusNotInThisMasterCatalogCategoryId(final Long categoryId,
        Object... params) {//from  www .j a v  a 2  s .  co  m
    DetachedCriteria subquery = DetachedCriteria.forClass(ProductSku.class);
    subquery.createAlias("catalogCategoryMasterProductSkuRels", "catalogCategoryProductSkuRel",
            JoinType.LEFT_OUTER_JOIN);
    subquery.add(Restrictions.eq("catalogCategoryProductSkuRel.pk.catalogCategoryMaster.id", categoryId));
    subquery.setProjection(Projections.property("id"));

    Criteria criteria = createDefaultCriteria(ProductSku.class);
    handleSpecificProductSkuFetchMode(criteria, params);
    criteria.add(Subqueries.notIn("id", subquery));

    criteria.addOrder(Order.asc("id"));

    @SuppressWarnings("unchecked")
    List<ProductSku> productSkus = criteria.list();
    return productSkus;
}

From source file:org.infoscoop.dao.StaticTabDAO.java

License:Open Source License

/**
 * Get all static tabs without commandBar and portalHeader. 
 * @return//from w w  w .ja v  a2  s.co  m
 */
public List getStaticTabList() {
    DetachedCriteria c = DetachedCriteria.forClass(StaticTab.class);
    c.add(Expression.eq(StaticTab.PROP_DELETEFLAG, StaticTab.DELETEFLAG_FALSE));
    c.add(Expression.ne(StaticTab.PROP_ID, StaticTab.COMMANDBAR_TAB_ID));
    c.add(Expression.ne(StaticTab.PROP_ID, StaticTab.PORTALHEADER_TAB_ID));

    c.createAlias(TabAdmin.REF, "ta", CriteriaSpecification.LEFT_JOIN);
    c.addOrder(Order.asc(StaticTab.PROP_TABNUMBER));

    return super.getHibernateTemplate().findByCriteria(c);
}