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