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

@Deprecated
public DetachedCriteria createCriteria(String associationPath, int joinType) 

Source Link

Document

Deprecated!

Usage

From source file:com.krawler.common.util.BuildCriteria.java

License:Open Source License

private static void buildCriteria(Object value, Integer criteriaVal, DetachedCriteria crit, String association,
        HashMap<String, String> associationparams, HashMap<String, DetachedCriteria> existedassociationparams) {
    if (association != null) {
        String[] associationArr = association.split("\\.");
        if (associationArr.length >= 2) {
            DetachedCriteria parentcrit = null;
            for (int i = 0; i < associationArr.length - 1; i++) { // -1 is to ignore property from association

                if (parentcrit == null && existedassociationparams.containsKey(associationArr[i])) {
                    parentcrit = existedassociationparams.get(associationArr[i]);
                } else {
                    if (parentcrit != null) {
                        parentcrit = parentcrit.createCriteria(associationArr[i], associationArr[i]);//, DetachedCriteria.INNER_JOIN);
                    } else {
                        parentcrit = crit.createCriteria(associationArr[i], associationArr[i]);//, DetachedCriteria.INNER_JOIN);
                    }// w  w w .j  av a  2  s.  c  o m
                }

                if (i == associationArr.length - 2) {
                    associationparams.put(association, associationArr[i] + "." + associationArr[i + 1]);
                    pushCriteriaValue(value, criteriaVal, parentcrit, associationArr[i + 1]);
                }
                existedassociationparams.put(associationArr[i], parentcrit);
            }
        } else {
            pushCriteriaValue(value, criteriaVal, crit, association);
        }
    }

}

From source file:com.krawler.common.util.BuildCriteria.java

License:Open Source License

public static void buildCriteriaAssociation(DetachedCriteria crit, Integer JOIN_TYPE, String association,
        HashMap<String, String> associationparams, HashMap<String, DetachedCriteria> existedassociationparams) {
    if (association != null && !StringUtil.isNullOrEmpty(association)) {
        String[] associationArr = association.split("\\.");
        DetachedCriteria parentcrit = null;
        for (int i = 0; i < associationArr.length; i++) {
            if (parentcrit == null && existedassociationparams.containsKey(associationArr[i])) {
                parentcrit = existedassociationparams.get(associationArr[i]);
            } else {
                if (parentcrit != null) {
                    parentcrit = parentcrit.createCriteria(associationArr[i], associationArr[i]);//, JOIN_TYPE);
                } else {
                    parentcrit = crit.createCriteria(associationArr[i], associationArr[i]);//, JOIN_TYPE);
                }// ww  w  . ja v  a  2  s . c  o m
            }

            if (i == associationArr.length - 1) {
                associationparams.put(association, associationArr[i]);
            }
            existedassociationparams.put(associationArr[i], parentcrit);
        }
    }

}

From source file:net.webpasswordsafe.server.dao.PasswordDAOHibernate.java

License:Open Source License

@Override
@SuppressWarnings("unchecked")
public List<Password> findPasswordByFuzzySearch(String query, User user, boolean activeOnly,
        Collection<Tag> tags, Match tagMatch) {
    //kludge to not use ilike on text column if MSSQL
    boolean isMSSQL = ((SessionFactoryImpl) getSessionFactory()).getDialect().toString().contains("SQLServer");
    Criteria crit = getSession().createCriteria(getPersistentClass());
    crit.setFetchMode("tags", FetchMode.JOIN);
    crit.add(Restrictions.or(//from w  ww .  j a va 2 s .co  m
            Restrictions.or(Restrictions.ilike("name", query, MatchMode.ANYWHERE),
                    Restrictions.ilike("username", query, MatchMode.ANYWHERE)),
            isMSSQL ? Restrictions.like("notes", query, MatchMode.ANYWHERE)
                    : Restrictions.ilike("notes", query, MatchMode.ANYWHERE)));
    if (activeOnly) {
        crit.add(Restrictions.eq("active", true));
    }
    Criterion tagsCriterion = null;
    for (Tag tag : tags) {
        Criterion tc = Restrictions.sqlRestriction(
                "? in (select tag_id from password_tags where password_id = {alias}.id)", tag.getId(),
                StandardBasicTypes.LONG);
        if (null == tagsCriterion) {
            tagsCriterion = tc;
        } else {
            tagsCriterion = tagMatch.equals(Match.AND) ? Restrictions.and(tagsCriterion, tc)
                    : Restrictions.or(tagsCriterion, tc);
        }
    }
    if (tagsCriterion != null)
        crit.add(tagsCriterion);
    crit.createAlias("permissions", "pm");
    crit.add(Restrictions.in("pm.accessLevel",
            new String[] { AccessLevel.READ.name(), AccessLevel.WRITE.name(), AccessLevel.GRANT.name() }));
    if (!authorizer.isAuthorized(user, Function.BYPASS_PASSWORD_PERMISSIONS.name())) {
        DetachedCriteria groupQuery = DetachedCriteria.forClass(Group.class);
        groupQuery.setProjection(Projections.id());
        groupQuery.createCriteria("users", "u").add(Restrictions.eq("u.id", user.getId()));
        crit.add(Restrictions.or(Restrictions.eq("pm.subject", user),
                Subqueries.propertyIn("pm.subject", groupQuery)));
    }
    crit.addOrder(Order.asc("name"));
    crit.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
    return crit.list();
}

From source file:org.eurocarbdb.action.core.SearchGlycanSequence.java

License:Open Source License

private DetachedCriteria createSerializableCriteria() {
    // create base criteria    
    log.debug("creating GlycanSequence criteria");

    DetachedCriteria criteria;

    criteria = DetachedCriteria.forClass(GlycanSequence.class);

    // create biological contexts criteria
    DetachedCriteria bc_criteria = null;
    DetachedCriteria tax_criteria = null;
    DetachedCriteria tissue_criteria = null;
    DetachedCriteria disease_criteria = null;
    DetachedCriteria perturbation_criteria = null;

    if (taxonomyName != null || tissueName != null || diseaseName != null || perturbationName != null) {
        isNewQuery = true;//from w  ww.j a va  2 s  .  c  o m
        log.debug("creating Biological context criteria");
        bc_criteria = criteria.createCriteria("glycanContexts").createCriteria("biologicalContext", "bc");

        // add taxonomy criteria        
        if (taxonomyName != null) {
            log.debug("adding taxonomy query predicates for input string '" + taxonomyName + "'");
            tax_criteria = bc_criteria.createCriteria("taxonomy", "taxa")
                    .createCriteria("taxonomySupertypes", "supertax")
                    .add(Restrictions.ilike("taxon", taxonomyName, MatchMode.EXACT));
        }

        // add tissue criteria
        if (tissueName != null) {
            log.debug("adding tissue query predicates for input string '" + tissueName + "'");

            tissue_criteria = bc_criteria.createCriteria("tissueTaxonomy", "ttax")
                    .add(Restrictions.ilike("tissueTaxon", tissueName, MatchMode.EXACT));
        }

        // add disease criteria
        if (diseaseName != null) {
            log.debug("adding disease query criteria for input string '" + diseaseName + "'");

            disease_criteria = bc_criteria.createCriteria("diseaseContexts").createCriteria("disease", "dis")
                    .add(Restrictions.ilike("diseaseName", diseaseName, MatchMode.EXACT));
        }

        if (perturbationName != null) {
            log.debug("adding perturbation query criteria for input string '" + perturbationName + "'");

            perturbation_criteria = bc_criteria.createCriteria("perturbationContexts")
                    .createCriteria("perturbation", "per")
                    .add(Restrictions.ilike("perturbationName", perturbationName, MatchMode.EXACT));
        }

    }

    // add mass criteria
    boolean mass_query_is_given = false;
    boolean params_are_ok = false;

    if (exactMass > 0 && exactMassTolerance > 0) {
        isNewQuery = true;
        mass_query_is_given = true;
        lowMass = exactMass - exactMassTolerance;
        highMass = exactMass + exactMassTolerance;
        log.debug("adding predicates for exactMass=" + exactMass + " Da +/- " + exactMassTolerance + " Da (ie: "
                + lowMass + "-" + highMass + " Da)");
        params_are_ok = true;
    } else if (lowMass > 0 && highMass > 0) {
        isNewQuery = true;
        mass_query_is_given = true;
        exactMass = -1;
        exactMassTolerance = -1;
        log.debug("adding predicates for mass range=(" + lowMass + ".." + highMass + " Da)");
        params_are_ok = true;
    }

    if (mass_query_is_given) {
        if (params_are_ok) {
            isNewQuery = true;
            String property = useAvgMass ? "massAverage" : "massMonoisotopic";
            criteria.add(Restrictions.between(property, new BigDecimal(lowMass), new BigDecimal(highMass)));
        } else {
            String msg = "Insufficient mass parameters given, either "
                    + "provide an exactMass + exactMassTolerence + useAvgMass preference, "
                    + "or provide a lowMass + highMass + useAvgMass preference";

            addActionError(msg);
            log.info(msg);
        }
    }

    Glycan glycan = null;

    if (sequenceGWS != null) {
        glycan = Glycan.fromString(sequenceGWS);
        glycan.removeReducingEndModification();
        if (glycan.isEmpty()) {
            glycan = null;
            sequenceGWS = null;
        }
    }

    if (glycan != null) {
        isNewQuery = true;

        // search structure in DB
        String glycoct = glycan.toGlycoCTCondensed();
        SugarSequence seq = new SugarSequence(glycoct);
        SubstructureQuery query = new SubstructureQuery(seq);

        if (sequencePosition != null) {
            if (sequencePosition.equals("Core") || sequencePosition.equals("Core + Terminii"))
                query.setOption(Must_Include_Reducing_Terminus);

            if (sequencePosition.equals("Terminii") || sequencePosition.equals("Core + Terminii"))
                query.setOption(Must_Include_All_Non_Reducing_Terminii);
        }

        criteria.add(query.getQueryCriterion());
    }

    if (this.additionalQueries.size() > 1) {
        isNewQuery = true;
    }

    for (SavedGlycanSequenceSearch oldQuery : this.additionalQueries) {

        DetachedCriteria oldCriteria = oldQuery.getQueryCriteria();

        criteria.add(Subqueries.propertyIn("glycanSequenceId", oldCriteria));

        oldCriteria.setProjection(Projections.distinct(Projections.property("glycanSequenceId")));

        this.currentSearch = oldQuery;
    }

    return criteria;
}

From source file:org.forzaframework.core.persistance.hibernate.CriteriaTranslatorImpl.java

License:Apache License

private void simpleExpressionProcessNestedPath(Class entityClass,
        org.hibernate.criterion.DetachedCriteria criteria, SimpleExpression se, String originalProperty) {
    // employee.name.firstName
    String nestedPath = originalProperty.substring(0, originalProperty.indexOf(".")); // employee
    String property = originalProperty.substring(originalProperty.indexOf(".") + 1); // name.firstName
    String nestedProperty = null; // name
    if (property.indexOf(".") > 0) {
        nestedProperty = property.substring(0, property.indexOf("."));
    }/* w  w  w .j a  v a2  s  . co  m*/

    DetachedCriteria nestedCriteria = getCriteria(nestedPath);
    if (nestedCriteria == null) {
        nestedCriteria = criteria.createCriteria(nestedPath, nestedPath);
        criterias.add(nestedCriteria);
    }

    Class nestedPathClass = null;
    if (nestedProperty != null) {
        nestedPathClass = ClassUtils.getPropertyClass(entityClass, nestedProperty);
    }

    if (property.contains(".")
            && (nestedPathClass != null && !ClassUtils.hasAnnotation(nestedPathClass, Embeddable.class))) {
        simpleExpressionProcessNestedPath(nestedPathClass, nestedCriteria, se, property);
        return;
    }

    org.hibernate.criterion.Criterion hibernateCriterion = null;
    if (se.getOperator().equals("=")) {
        hibernateCriterion = org.hibernate.criterion.Restrictions.eq(property, se.getValue());
    } else if (se.getOperator().equals(">")) {
        hibernateCriterion = org.hibernate.criterion.Restrictions.gt(property, se.getValue());
    } else if (se.getOperator().equals(" like ")) {
        org.hibernate.criterion.SimpleExpression expression = org.hibernate.criterion.Restrictions
                .like(property, se.getValue());
        if (se.getIgnoreCase()) {
            expression.ignoreCase();
        }
        hibernateCriterion = expression;
    }
    nestedCriteria.add(hibernateCriterion);
}

From source file:org.gaixie.micrite.security.dao.hibernate.AuthorityDAOImpl.java

License:Open Source License

@SuppressWarnings("unchecked")
public List<Authority> findByRoleId(int roleId) {
    DetachedCriteria criteria = DetachedCriteria.forClass(Authority.class);
    criteria.createCriteria("roles", "r").add(Expression.eq("r.id", roleId));

    criteria.addOrder(Order.asc("order1"));
    criteria.addOrder(Order.asc("order2"));

    return getHibernateTemplate().findByCriteria(criteria);
}

From source file:org.jspresso.framework.model.persistence.hibernate.criterion.EnhancedDetachedCriteria.java

License:Open Source License

/**
 * Creates or gets a previously registered sub-criteria.
 *
 * @param masterCriteria/*from   w ww. j a v  a2s  .  c  o m*/
 *          the parent criteria holding the sub-criteria.
 * @param associationPath
 *          the association path.
 * @param joinType
 *          the join type.
 * @return the new or previously registered sub-criteria.
 */
public DetachedCriteria getSubCriteriaFor(DetachedCriteria masterCriteria, String associationPath,
        JoinType joinType) {
    DetachedCriteria subCriteria = getRegisteredSubCriteria(masterCriteria, associationPath);
    if (subCriteria == null) {
        subCriteria = masterCriteria.createCriteria(associationPath, joinType);
        registerSubCriteria(masterCriteria, associationPath, subCriteria);
    }
    return subCriteria;
}

From source file:org.jspresso.framework.model.persistence.hibernate.criterion.EnhancedDetachedCriteria.java

License:Open Source License

/**
 * Creates or gets a previously registered sub-criteria.
 *
 * @param masterCriteria//from  w  w w.  j  a va2  s  . c o  m
 *          the parent criteria holding the sub-criteria.
 * @param associationPath
 *          the association path.
 * @param alias
 *          the alias.
 * @return the new or previously registered sub-criteria.
 */
public DetachedCriteria getSubCriteriaFor(DetachedCriteria masterCriteria, String associationPath,
        String alias) {
    DetachedCriteria subCriteria = getRegisteredSubCriteria(masterCriteria, associationPath);
    if (subCriteria == null) {
        subCriteria = masterCriteria.createCriteria(associationPath, alias);
        registerSubCriteria(masterCriteria, associationPath, subCriteria);
    }
    return subCriteria;
}

From source file:org.n52.series.db.dao.DbQuery.java

License:Open Source License

private DetachedCriteria addHierarchicalFilterRestriction(Set<String> values, String entity,
        DetachedCriteria filter) {
    if (hasValues(values)) {
        filter.createCriteria(entity, "e")
                // join the parents to enable filtering via parent ids
                .createAlias("e.parents", "p", JoinType.LEFT_OUTER_JOIN).add(Restrictions
                        .or(createIdCriterion(values, "e"), Restrictions.in("p.pkid", parseToIds(values))));
    }/*from  www  .jav  a  2 s .  c  om*/
    return filter;
}

From source file:org.sipfoundry.sipxconfig.common.SipxHibernateDaoSupport.java

License:Contributor Agreement License

/**
 * Update a Criteria object for filtering beans by group membership. If groupId is null, then
 * don't filter by group.//  ww w  . j  a  va 2s .c om
 */
public static void addByGroupCriteria(DetachedCriteria crit, Integer groupId) {
    if (groupId != null) {
        crit.createCriteria("groups", "g").add(Restrictions.eq("g.id", groupId));
    }
}