Example usage for org.hibernate.criterion DetachedCriteria createCriteria

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

Introduction

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

Prototype

public DetachedCriteria createCriteria(String associationPath) 

Source Link

Document

Creates a nested DetachedCriteria representing the association path.

Usage

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