List of usage examples for org.hibernate.criterion DetachedCriteria createCriteria
public DetachedCriteria createCriteria(String associationPath)
From source file:sernet.verinice.hibernate.TreeElementDao.java
License:Open Source License
private void configureCriteria(DetachedCriteria criteria, IRetrieveInfo ri) { if (ri.isProperties()) { criteria.setFetchMode("entity", FetchMode.JOIN); criteria.setFetchMode("entity.typedPropertyLists", FetchMode.JOIN); criteria.setFetchMode("entity.typedPropertyLists.properties", FetchMode.JOIN); }// w ww . j a v a 2 s .co m if (ri.isPermissions()) { criteria.setFetchMode("permissions", FetchMode.JOIN); } if (ri.isLinksDown()) { criteria.setFetchMode("linksDown", FetchMode.JOIN); criteria.setFetchMode("linksDown.dependency", FetchMode.JOIN); if (ri.isLinksDownProperties()) { criteria.setFetchMode("linksDown.dependency.entity", FetchMode.JOIN); criteria.setFetchMode("linksDown.dependency.entity.typedPropertyLists", FetchMode.JOIN); criteria.setFetchMode("linksDown.dependency.entity.typedPropertyLists.properties", FetchMode.JOIN); } } if (ri.isLinksUp()) { criteria.setFetchMode("linksUp", FetchMode.JOIN); criteria.setFetchMode("linksUp.dependant", FetchMode.JOIN); if (ri.isLinksUpProperties()) { criteria.setFetchMode("linksUp.dependant.entity", FetchMode.JOIN); criteria.setFetchMode("linksUp.dependant.entity.typedPropertyLists", FetchMode.JOIN); criteria.setFetchMode("linksUp.dependant.entity.typedPropertyLists.properties", FetchMode.JOIN); } } if (ri.isParent()) { criteria.setFetchMode("parent", FetchMode.JOIN); if (ri.isSiblings()) { criteria.setFetchMode("parent.children", FetchMode.JOIN); } if (ri.isParentPermissions()) { criteria.setFetchMode("parent.permissions", FetchMode.JOIN); } } if (ri.isChildren()) { criteria.setFetchMode("children", FetchMode.JOIN); DetachedCriteria criteriaChildren = null, criteriaEntity = null; if (ri.isInnerJoin()) { criteriaChildren = criteria.createCriteria("children"); } if (ri.isChildrenProperties()) { criteria.setFetchMode("children.entity", FetchMode.JOIN); if (ri.isInnerJoin()) { criteriaEntity = criteriaChildren.createCriteria("entity"); } criteria.setFetchMode("children.entity.typedPropertyLists", FetchMode.JOIN); if (ri.isInnerJoin()) { criteriaEntity.createCriteria("typedPropertyLists"); } criteria.setFetchMode("children.entity.typedPropertyLists.properties", FetchMode.JOIN); } if (ri.isChildrenPermissions()) { criteria.setFetchMode("children.permissions", FetchMode.JOIN); if (ri.isInnerJoin()) { criteriaChildren.createCriteria("permissions"); } } } if (ri.isGrandchildren()) { criteria.setFetchMode("children.children", FetchMode.JOIN); } criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); }
From source file:test.eurocarbdb.dataaccess.core.SubQueryTest.java
License:Open Source License
public void canSimpleDetachedSubQuery() { super.setup(); //Criteria subcriteria = em.createQuery( GlycanSequence.class ).setMaxResults( 20 ); DetachedCriteria subcriteria = DetachedCriteria.forClass(GlycanSequence.class); DetachedCriteria criteria; criteria = DetachedCriteria.forClass(GlycanSequence.class); // criteria.add( Restrictions.lt( "glycanSequenceId", 100)); DetachedCriteria bc_crit = criteria.createCriteria("glycanContexts"); //DetachedCriteria bc_crit = DetachedCriteria.forClass( GlycanSequenceContext.class ); //criteria.createCriteria("glycanContexts"); bc_crit.add(Restrictions.gt("glycanSequenceContextId", 0)); bc_crit.setProjection(Projections.property("glycanSequenceContextId")); criteria.add(Subqueries.propertyIn("glycanSequenceContextId", bc_crit)); criteria.setProjection(Projections.distinct(Projections.property("glycanSequenceId"))); subcriteria.add(Subqueries.propertyIn("glycanSequenceId", criteria)); //System.out.println(subcriteria.list().size()); //subcriteria.getExecutableCriteria(((HibernateEntityManager) em).getHibernateSession()).setMaxResults(20).list(); super.teardown(); }
From source file:ubic.gemma.persistence.service.expression.bioAssayData.RawExpressionDataVectorDaoImpl.java
License:Apache License
@Override public RawExpressionDataVector find(RawExpressionDataVector designElementDataVector) { BusinessKey.checkKey(designElementDataVector); DetachedCriteria crit = DetachedCriteria.forClass(RawExpressionDataVector.class); crit.createCriteria("designElement") .add(Restrictions.eq("name", designElementDataVector.getDesignElement().getName())) .createCriteria("arrayDesign").add(Restrictions.eq("name", designElementDataVector.getDesignElement().getArrayDesign().getName())); crit.createCriteria("quantitationType") .add(Restrictions.eq("name", designElementDataVector.getQuantitationType().getName())); crit.createCriteria("expressionExperiment") .add(Restrictions.eq("name", designElementDataVector.getExpressionExperiment().getName())); List<?> results = this.getHibernateTemplate().findByCriteria(crit); Object result = null;/*from w w w.j av a 2 s. c o m*/ if (results != null) { if (results.size() > 1) { throw new org.springframework.dao.InvalidDataAccessResourceUsageException( "More than one instance of '" + DesignElementDataVector.class.getName() + "' was found when executing query"); } else if (results.size() == 1) { result = results.iterator().next(); } } return (RawExpressionDataVector) result; }
From source file:ubic.gemma.persistence.util.BusinessKey.java
License:Apache License
@SuppressWarnings({ "WeakerAccess", "unused" }) // Possible external use public static void attachCriteria(DetachedCriteria queryObject, DatabaseEntry databaseEntry, String attributeName) {/*from w w w . j ava 2 s . c om*/ DetachedCriteria externalRef = queryObject.createCriteria(attributeName); BusinessKey.addRestrictions(externalRef, databaseEntry); }