List of usage examples for org.springframework.data.mongodb.core.query Query addCriteria
public Query addCriteria(CriteriaDefinition criteriaDefinition)
From source file:org.slc.sli.ingestion.transformation.EdFi2SLITransformer.java
protected Query createEntityLookupQueryFromKeyFields(SimpleEntity entity, EntityConfig entityConfig, AbstractMessageReport report, ReportStats reportStats) { Query query = new Query(); StringBuilder errorMessage = new StringBuilder(""); if (entityConfig.getKeyFields() == null || entityConfig.getKeyFields().size() == 0) { report.error(reportStats, new ElementSourceImpl(entity), CoreMessageCode.CORE_0011); } else {/*from ww w .j av a 2s . c o m*/ errorMessage.append(" Entity " + entity.getType() + "\n" + " Key Fields " + entityConfig.getKeyFields() + "\n"); if (entityConfig.getReferences() != null && entityConfig.getReferences().size() > 0) { errorMessage.append(" The following collections are referenced by the key fields:" + "\n"); for (RefDef refDef : entityConfig.getReferences()) { String collectionName = ""; NeutralSchema schema = schemaRepository.getSchema(refDef.getRef().getEntityType()); if (schema != null) { AppInfo appInfo = schema.getAppInfo(); if (appInfo != null) { collectionName = appInfo.getCollectionType(); } } errorMessage.append(" collection = " + collectionName + "\n"); } } } try { for (String field : entityConfig.getKeyFields()) { Object fieldValue = PropertyUtils.getProperty(entity, field); if (fieldValue instanceof List) { @SuppressWarnings("rawtypes") List fieldValues = ((List) fieldValue); int size = fieldValues.size(); // make sure we have exactly the number of desired values Criteria criteria = Criteria.where(field).size(size); // if there are desired values, make sure we have each individual desired value if (size > 0) { Criteria[] valueCriteria = new Criteria[size]; for (int i = 0; i < size; i++) { valueCriteria[i] = Criteria.where(field).is(fieldValues.get(i)); } criteria = criteria.andOperator(valueCriteria); } query.addCriteria(criteria); // this will be insufficient if fieldValue can contain duplicates } else { query.addCriteria(Criteria.where(field).is(fieldValue)); } } ComplexKeyField complexField = entityConfig.getComplexKeyField(); if (complexField != null) { String propertyString = complexField.getListPath() + ".[0]." + complexField.getFieldPath(); Object fieldValue = PropertyUtils.getProperty(entity, propertyString); query.addCriteria(Criteria.where(complexField.getListPath() + "." + complexField.getFieldPath()) .is(fieldValue)); } } catch (Exception e) { report.error(reportStats, new ElementSourceImpl(entity), CoreMessageCode.CORE_0012, errorMessage.toString()); } return query; }
From source file:piecework.common.SearchQueryBuilder.java
public Query build(Set<String> allowedProcessDefinitionKeys, Sanitizer sanitizer) { Query query = new Query(); Set<String> filteredProcessDefinitionKeys; if (searchCriteria.getProcessDefinitionKeys() != null && !searchCriteria.getProcessDefinitionKeys().isEmpty()) filteredProcessDefinitionKeys = Sets.intersection(searchCriteria.getProcessDefinitionKeys(), allowedProcessDefinitionKeys); else/*from ww w . j a v a2 s . c o m*/ filteredProcessDefinitionKeys = allowedProcessDefinitionKeys; query.addCriteria(where("processDefinitionKey").in(filteredProcessDefinitionKeys)); if (StringUtils.isNotEmpty(searchCriteria.getProcessInstanceId())) query.addCriteria(where("processInstanceId").is(searchCriteria.getProcessInstanceId())); Map<SearchFacet, Object> facetParameters = searchCriteria.getFacetParameters(); if (facetParameters != null && !facetParameters.isEmpty()) { for (Map.Entry<SearchFacet, Object> entry : facetParameters.entrySet()) { if (entry.getKey() == null) continue; if (entry.getValue() == null) continue; query.addCriteria(entry.getKey().criteria(entry.getValue())); } } if (StringUtils.isNotBlank(searchCriteria.getProcessStatus())) { if (!searchCriteria.getProcessStatus().equalsIgnoreCase("all")) query.addCriteria(where("processStatus").is(searchCriteria.getProcessStatus())); } if (StringUtils.isNotEmpty(searchCriteria.getInitiatedBy())) query.addCriteria(where("initiatorId").is(searchCriteria.getInitiatedBy())); if (!searchCriteria.getKeywords().isEmpty()) { List<String> tokens = new ArrayList<String>(); for (String keyword : searchCriteria.getKeywords()) { String resultString = keyword.replaceAll("[^\\p{L}\\p{Nd}]\\-", ","); String[] components = resultString.split(","); if (components != null && components.length > 0) tokens.addAll(Arrays.asList(components)); } int count = 0; Criteria criteria = where("keywords"); List<Pattern> dbObjects = new ArrayList<Pattern>(); for (String keyword : tokens) { dbObjects.add(Pattern.compile(keyword, 0)); count++; } if (count > 0) query.addCriteria(criteria.all(dbObjects)); } return query; }
From source file:piecework.content.concrete.GridFsContentResource.java
@Override public InputStream getInputStream() throws IOException { Query query = query(GridFsCriteria.whereFilename().is(location)); if (uploadDate != null) query.addCriteria(GridFsCriteria.where("uploadDate").is(uploadDate)); GridFSDBFile file = gridFsOperations.findOne(query); return file.getInputStream(); }
From source file:piecework.repository.concrete.ProcessInstanceRepositoryCustomImpl.java
@Override public boolean update(String id, Task task) { Query query = new Query(); query.addCriteria(where("processInstanceId").is(id)); Update update = new Update(); update.set("tasks." + task.getTaskInstanceId(), task).set("lastModifiedTime", new Date()); FindAndModifyOptions options = new FindAndModifyOptions(); options.returnNew(true);/*ww w . j ava2s . c om*/ ProcessInstance stored = mongoOperations.findAndModify(query, update, options, ProcessInstance.class); return true; }