@Override protected Criteria or(Criteria base, Criteria criteria) { Criteria result = new Criteria(); return result.orOperator(base, criteria); }
public Query getByIdInQuery(Collection<?> entities) { MultiValueMap<String, Object> byIds = new LinkedMultiValueMap<>(); entities.stream() // .map(this::forEntity) // .forEach(it -> byIds.add(it.getIdFieldName(), it.getId())); Criteria[] criterias = byIds.entrySet().stream() // .map(it -> Criteria.where(it.getKey()).in(it.getValue())) // .toArray(Criteria[]::new); return new Query(criterias.length == 1 ? criterias[0] : new Criteria().orOperator(criterias)); }
@Override public EndpointProfilesPageDto findByEndpointGroupId(PageLinkDto pageLink) { LOG.debug("Find endpoint profiles by endpoint group id [{}] ", pageLink.getEndpointGroupId()); EndpointProfilesPageDto endpointProfilesPageDto = new EndpointProfilesPageDto(); int lim = Integer.valueOf(pageLink.getLimit()); int offs = Integer.valueOf(pageLink.getOffset()); List<MongoEndpointProfile> mongoEndpointProfileList = find( query(new Criteria() .orOperator(where(EP_GROUP_STATE + "." + ENDPOINT_GROUP_ID) .is(pageLink.getEndpointGroupId()), where(EP_GROUP_STATE + "." + ENDPOINT_GROUP_ID) .is(pageLink.getEndpointGroupId()))) .skip(offs) .limit(lim + 1)); if (mongoEndpointProfileList.size() == (lim + 1)) { String offset = Integer.toString(lim + offs); pageLink.setOffset(offset); mongoEndpointProfileList.remove(lim); } else { pageLink.setNext(DaoConstants.LAST_PAGE_MESSAGE); } endpointProfilesPageDto.setPageLinkDto(pageLink); endpointProfilesPageDto.setEndpointProfiles(convertDtoList(mongoEndpointProfileList)); return endpointProfilesPageDto; }
@Override public List<MongoNotification> findNotificationsByTopicIdAndVersionAndStartSecNum( String topicId, int seqNumber, int sysNfVersion, int userNfVersion ) { LOG.debug("Find notifications by topic id [{}], sequence number start [{}], " + "system schema version [{}], user schema version [{}]", topicId, seqNumber, sysNfVersion, userNfVersion); return find(query(where(NF_TOPIC_ID) .is(topicId) .and(NF_SEQ_NUM) .gt(seqNumber) .orOperator(where(NF_VERSION) .is(sysNfVersion) .and(NF_TYPE) .is(SYSTEM), where(NF_VERSION) .is(userNfVersion) .and(NF_TYPE) .is(USER)))); }
Query query = Query.query( new Criteria() .orOperator( where(EP_GROUP_STATE + "." + ENDPOINT_GROUP_ID) .is(pageLink.getEndpointGroupId()),
@Override protected Criteria or(Criteria base, Criteria criteria) { Criteria result = new Criteria(); return result.orOperator(base, criteria); }
public Query getByIdInQuery(Collection<?> entities) { MultiValueMap<String, Object> byIds = new LinkedMultiValueMap<>(); entities.stream() // .map(this::forEntity) // .forEach(it -> byIds.add(it.getIdFieldName(), it.getId())); Criteria[] criterias = byIds.entrySet().stream() // .map(it -> Criteria.where(it.getKey()).in(it.getValue())) // .toArray(Criteria[]::new); return new Query(criterias.length == 1 ? criterias[0] : new Criteria().orOperator(criterias)); }
@Override protected Criteria visit(OrNode node) { Criteria criteria = new Criteria(); List<Criteria> children = node.getChildren().stream() .map(this::visitAny).collect(Collectors.toList()); return criteria.orOperator(children.toArray(new Criteria[children.size()])); }
public Criteria getCriteriaFromResourceQueries(List<ResourceQuery> resourceQueries) { List<Criteria> criterias = new ArrayList<>(); for (ResourceQuery resourceQuery : resourceQueries) { criterias.add(getCriteriaFromResourceQuery(resourceQuery)); } if (criterias.size() == 0) { return new Criteria(); } else if (criterias.size() == 1) { return criterias.get(0); } else { return new Criteria().orOperator(criterias.toArray(new Criteria[criterias.size()])); } }
currentEntityIds.add(ite.next()); if (i % chunkSize == (chunkSize - 1)) { splittedInlist.orOperator(Criteria.where(IEntity.ID).in(currentEntityIds)); currentEntityIds = new LinkedHashSet<>(); complete = true; splittedInlist.orOperator(Criteria.where(IEntity.ID).in(currentEntityIds));
/** * Query of getting item child and item itself * * @param objectId Parent item * @return Query */ private Query queryItems(String objectId) { Criteria criteria = new Criteria(); criteria.orOperator(Criteria.where("path").in(singletonList(objectId)), Criteria.where("_id").is(objectId)); return Query.query(criteria); }
private Criteria unconfirmedCriterion() { return new Criteria() .orOperator( citationTextChangedCriterion(Boolean.TRUE), targetArticleChangedCriterion(Boolean.TRUE), proposalsExistsCriterion(Boolean.TRUE), errorCriterion() ); }
private Query buildSearchUserQuery(String term, Pageable pageable) { final String regex = "(?i).*" + Pattern.quote(term.toLowerCase()) + ".*"; Criteria login = where(LOGIN).regex(regex); Criteria fullName = where(FULLNAME_DB_FIELD).regex(regex); Criteria email = where(User.EMAIL).regex(regex); Criteria criteria = new Criteria().orOperator(email, login, fullName); return query(criteria).with(pageable); }
private Mono<MatchEvent> createEvent(final Match match) { // Will create a match event of a random type for the selected match (and a random player) final Query query = Query.query( new Criteria().orOperator( Criteria.where("teamCode").is(match.getTeamACode()), Criteria.where("teamCode").is(match.getTeamBCode()))); final Flux<Player> playersForMatch = this.mongoTemplate.find(query, Player.class); final Mono<Player> chosenPlayer = playersForMatch.collectList().map(this::randomFromList); return chosenPlayer.map( p -> new MatchEvent(match.getId(), MatchEventUtils.randomEventType(), p.getTeamCode(), p.getId())); }
private Criteria precedingByModificationDateAndIdCriterion(Date date, String id) { Criteria criteria = new Criteria() .orOperator( Criteria.where(PROPERTY_MODIFICATION_DATE).lt(date), new Criteria().andOperator( Criteria.where(PROPERTY_MODIFICATION_DATE).is(date), Criteria.where(F_ID).lt(id) ) ); return criteria; }
private Criteria followingByModificationDateAndIdCriterion(Date date, String id) { Criteria criteria = new Criteria() .orOperator( Criteria.where(PROPERTY_MODIFICATION_DATE).gt(date), new Criteria().andOperator( Criteria.where(PROPERTY_MODIFICATION_DATE).is(date), Criteria.where(F_ID).gt(id) ) ); return criteria; }
@Override public Page<T> findSharedEntitiesByName(String projectName, String term, Pageable pageable) { final String regex = "(?i).*" + Pattern.quote(term.toLowerCase()) + ".*"; Query query = createSharedEntityQuery(projectName).with(pageable); Criteria name = Criteria.where(ENTITY_NAME_FIELD).regex(regex); Criteria owner = Criteria.where(ENTITY_OWNER_FIELD).regex(regex); Criteria description = Criteria.where(ENTITY_DESCRIPTION_FIELD).regex(regex); query.addCriteria(new Criteria().orOperator(name, owner, description)); Class<T> entityType = getEntityInformation().getJavaType(); List<T> searchResults = getMongoOperations().find(query, entityType); return new PageImpl<>(searchResults, pageable, getMongoOperations().count(query, entityType)); }
@Override public List<UserFilter> findAvailableFilters(String projectName, String[] ids, String userName) { //where ID from provided array AND it's shared on project Query q = Query.query(where(ID).in(Arrays.asList(ids)) .andOperator(new Criteria() .orOperator( where(OWNER).is(userName), where(PROJECT).is(projectName), where(ENTRIES).elemMatch(where("projectId").is(projectName))))); return mongoTemplate.find(q, UserFilter.class); } }
/** * Create criteria for loading owned entities and shared to specified project entities * * @param projectName * @param userName * @return */ private Criteria getAllEntitiesCriteria(String projectName, String userName) { return new Criteria().orOperator(new Criteria().andOperator(Criteria.where("acl.entries.projectId").is(projectName), Criteria.where("acl.entries.permissions").is(AclPermissions.READ.name()) ), new Criteria().andOperator(Criteria.where("acl.ownerUserId").is(userName), Criteria.where("projectName").is(projectName))); } }
protected Query buildQuery(final SearchFilter filter, final boolean pageable, final Criteria customCriteria) { Criteria queryCriteria = new Criteria(); // If customCriteria is not null, initialize queryCriteria with this criteria if (customCriteria != null) { queryCriteria = customCriteria; } if (!filter.andParamsIsEmpty()) { final Criteria[] aCriteria = buildAndParamsCriteria(filter.getAndParams()); queryCriteria = queryCriteria.andOperator(aCriteria); } if (!filter.paramsIsEmpty()) { final Criteria[] aCriteria = buildOrParamsCriteria(filter.getParams()); queryCriteria = queryCriteria.orOperator(aCriteria); } final Query query = new Query(queryCriteria); if (!filter.includeFieldsIsEmpty()) { for (final String field : filter.getIncludeFields()) { query.fields().include(field); } } if (!filter.excludeFieldsIsEmpty()) { for (final String field : filter.getExcludeFields()) { query.fields().exclude(field); } } if (pageable) { query.with(filter.getPageable()); } return query; }