List of usage examples for org.hibernate.criterion DetachedCriteria createAlias
@Deprecated public DetachedCriteria createAlias(String associationPath, String alias, int joinType)
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); }