Search in sources :

Example 46 with Sort

use of org.springframework.data.domain.Sort in project spring-data-mongodb by spring-projects.

the class ReactiveMongoTemplateTests method testFindOneWithSort.

// DATAMONGO-1444
@Test
public void testFindOneWithSort() {
    PersonWithAList sven = createPersonWithAList("Sven", 22);
    PersonWithAList erik = createPersonWithAList("Erik", 21);
    PersonWithAList mark = createPersonWithAList("Mark", 40);
    StepVerifier.create(template.insertAll(Arrays.asList(sven, erik, mark))).expectNextCount(3).verifyComplete();
    // test query with a sort
    Query query = new Query(where("age").gt(10));
    query.with(Sort.by(Direction.DESC, "age"));
    StepVerifier.create(template.findOne(query, PersonWithAList.class)).consumeNextWith(actual -> {
        assertThat(actual.getFirstName(), is("Mark"));
    }).verifyComplete();
}
Also used : Document(org.bson.Document) Arrays(java.util.Arrays) StepVerifier(reactor.test.StepVerifier) Metrics(org.springframework.data.geo.Metrics) ReplicaSet(org.springframework.data.mongodb.test.util.ReplicaSet) Autowired(org.springframework.beans.factory.annotation.Autowired) Index(org.springframework.data.mongodb.core.index.Index) OptimisticLockingFailureException(org.springframework.dao.OptimisticLockingFailureException) SpringJUnit4ClassRunner(org.springframework.test.context.junit4.SpringJUnit4ClassRunner) DataIntegrityViolationException(org.springframework.dao.DataIntegrityViolationException) PersonWithConvertedId(org.springframework.data.mongodb.core.MongoTemplateTests.PersonWithConvertedId) Map(java.util.Map) After(org.junit.After) Assertions(org.assertj.core.api.Assertions) Update(org.springframework.data.mongodb.core.query.Update) Sort(org.springframework.data.domain.Sort) VersionedPerson(org.springframework.data.mongodb.core.MongoTemplateTests.VersionedPerson) GeoSpatialIndexType(org.springframework.data.mongodb.core.index.GeoSpatialIndexType) NearQuery(org.springframework.data.mongodb.core.query.NearQuery) BlockingQueue(java.util.concurrent.BlockingQueue) Aggregation(org.springframework.data.mongodb.core.aggregation.Aggregation) LinkedBlockingQueue(java.util.concurrent.LinkedBlockingQueue) Collectors(java.util.stream.Collectors) List(java.util.List) Id(org.springframework.data.annotation.Id) GeospatialIndex(org.springframework.data.mongodb.core.index.GeospatialIndex) IntStream(java.util.stream.IntStream) Disposable(reactor.core.Disposable) RunWith(org.junit.runner.RunWith) HashMap(java.util.HashMap) BsonDocument(org.bson.BsonDocument) MappingException(org.springframework.data.mapping.MappingException) Direction(org.springframework.data.domain.Sort.Direction) ExpectedException(org.junit.rules.ExpectedException) Before(org.junit.Before) Matchers(org.hamcrest.Matchers) Mono(reactor.core.publisher.Mono) Test(org.junit.Test) IndexOperationsAdapter(org.springframework.data.mongodb.core.index.IndexOperationsAdapter) Criteria(org.springframework.data.mongodb.core.query.Criteria) Query(org.springframework.data.mongodb.core.query.Query) TimeUnit(java.util.concurrent.TimeUnit) Assumptions(org.assertj.core.api.Assumptions) Flux(reactor.core.publisher.Flux) DuplicateKeyException(org.springframework.dao.DuplicateKeyException) Rule(org.junit.Rule) ContextConfiguration(org.springframework.test.context.ContextConfiguration) Data(lombok.Data) ObjectId(org.bson.types.ObjectId) Assert(org.junit.Assert) WriteConcern(com.mongodb.WriteConcern) Collections(java.util.Collections) NearQuery(org.springframework.data.mongodb.core.query.NearQuery) Query(org.springframework.data.mongodb.core.query.Query) Test(org.junit.Test)

Example 47 with Sort

use of org.springframework.data.domain.Sort in project plumdo-work by wengwh.

the class BaseResource method getPageable.

public Pageable getPageable(Map<String, String> requestParams) {
    int page = RequestUtil.getInteger(requestParams, "pageNum", 1) - 1;
    int size = RequestUtil.getInteger(requestParams, "pageSize", 10);
    String[] orders = RequestUtil.getArray(requestParams, "sortOrder");
    String[] sorts = RequestUtil.getArray(requestParams, "sortName");
    List<Order> sortOrders = new ArrayList<Order>();
    for (int i = 0; i < sorts.length; i++) {
        String sort = sorts[i];
        String order = orders[i];
        if (order.equals("asc")) {
            sortOrders.add(new Order(Direction.ASC, sort));
        } else if (order.equals("desc")) {
            sortOrders.add(new Order(Direction.DESC, sort));
        } else {
            throw new IllegalArgumentException("Value for param 'order' is not valid : '" + order + "', must be 'asc' or 'desc'");
        }
    }
    if (sortOrders.isEmpty()) {
        return new PageRequest(page, size);
    } else {
        return new PageRequest(page, size, new Sort(sortOrders));
    }
}
Also used : Order(org.springframework.data.domain.Sort.Order) PageRequest(org.springframework.data.domain.PageRequest) ArrayList(java.util.ArrayList) Sort(org.springframework.data.domain.Sort)

Example 48 with Sort

use of org.springframework.data.domain.Sort in project ArachneCentralAPI by OHDSI.

the class BaseStudyServiceImpl method findStudies.

@Override
@Transactional(readOnly = true)
public Page<AbstractUserStudyListItem> findStudies(final SS studySearch) {
    Sort sort = getSort(studySearch.getSortBy(), studySearch.getSortAsc());
    StudySpecification<SU> studyFilteredListSpecification = new StudySpecification<>(studySearch);
    Page<SU> resultPage = baseUserStudyLinkRepository.findAll(studyFilteredListSpecification, new PageRequest(studySearch.getPage() - 1, studySearch.getPagesize(), sort));
    return resultPage.map(s -> (AbstractUserStudyListItem) s);
}
Also used : PageRequest(org.springframework.data.domain.PageRequest) StudySpecification(com.odysseusinc.arachne.portal.model.search.StudySpecification) Sort(org.springframework.data.domain.Sort) Transactional(org.springframework.transaction.annotation.Transactional)

Example 49 with Sort

use of org.springframework.data.domain.Sort in project ArachneCentralAPI by OHDSI.

the class BaseSubmissionServiceImpl method getSubmissionGroups.

@Override
@PreAuthorize("hasPermission(#submissoinGroupSearch.analysisId,  'Analysis', " + "T(com.odysseusinc.arachne.portal.security.ArachnePermission).ACCESS_STUDY)")
@PostAuthorize("@ArachnePermissionEvaluator.addPermissionsToSubmissions(principal, returnObject )")
public Page<SubmissionGroup> getSubmissionGroups(SubmissionGroupSearch submissoinGroupSearch) {
    final SubmissionGroupSpecification submissionGroupSpecification = new SubmissionGroupSpecification(submissoinGroupSearch);
    final Integer page = submissoinGroupSearch.getPage();
    final PageRequest pageRequest = new PageRequest(page == null ? 0 : page - 1, submissoinGroupSearch.getPageSize(), new Sort(Sort.Direction.DESC, "created"));
    final Page<SubmissionGroup> submissionGroups = submissionGroupRepository.findAll(submissionGroupSpecification, pageRequest);
    final List<SubmissionGroup> content = submissionGroups.getContent();
    final Map<Long, SubmissionGroup> submissionGroupMap = content.stream().collect(Collectors.toMap(SubmissionGroup::getId, sg -> {
        sg.setSubmissions(new ArrayList<>());
        return sg;
    }));
    final Set<Long> submissionGroupIds = submissionGroupMap.keySet();
    if (!CollectionUtils.isEmpty(submissionGroupIds)) {
        final SubmissionSpecification<T> submissionSpecification = SubmissionSpecification.<T>builder(submissionGroupIds).withStatuses(submissoinGroupSearch.getSubmissionStatuses()).withDataSourceIds(submissoinGroupSearch.getDataSourceIds()).hasInsight(submissoinGroupSearch.getHasInsight()).showHidden(submissoinGroupSearch.getShowHidden()).build();
        submissionRepository.findAll(submissionSpecification).forEach(s -> submissionGroupMap.get(s.getSubmissionGroup().getId()).getSubmissions().add(s));
    }
    return submissionGroups;
}
Also used : Arrays(java.util.Arrays) PreAuthorize(org.springframework.security.access.prepost.PreAuthorize) ResultFile(com.odysseusinc.arachne.portal.model.ResultFile) FileSaveRequest(com.odysseusinc.arachne.storage.util.FileSaveRequest) FAILED_PUBLISHED(com.odysseusinc.arachne.portal.model.SubmissionStatus.FAILED_PUBLISHED) BaseDataSourceService(com.odysseusinc.arachne.portal.service.BaseDataSourceService) Analysis(com.odysseusinc.arachne.portal.model.Analysis) Map(java.util.Map) Sort(org.springframework.data.domain.Sort) SecurityContextHolder(org.springframework.security.core.context.SecurityContextHolder) Path(java.nio.file.Path) SubmissionStatusHistoryElement(com.odysseusinc.arachne.portal.model.SubmissionStatusHistoryElement) SubmissionHelper(com.odysseusinc.arachne.portal.util.SubmissionHelper) EXECUTE(com.odysseusinc.arachne.portal.service.impl.submission.SubmissionActionType.EXECUTE) ArachneMailSender(com.odysseusinc.arachne.portal.service.mail.ArachneMailSender) BaseSubmissionRepository(com.odysseusinc.arachne.portal.repository.submission.BaseSubmissionRepository) Transactional(javax.transaction.Transactional) SubmissionGroupRepository(com.odysseusinc.arachne.portal.repository.SubmissionGroupRepository) Set(java.util.Set) PageRequest(org.springframework.data.domain.PageRequest) Page(org.springframework.data.domain.Page) IUser(com.odysseusinc.arachne.portal.model.IUser) SubmissionInsightRepository(com.odysseusinc.arachne.portal.repository.SubmissionInsightRepository) SimpMessagingTemplate(org.springframework.messaging.simp.SimpMessagingTemplate) Stream(java.util.stream.Stream) CollectionUtils(org.springframework.util.CollectionUtils) SubmissionStatus(com.odysseusinc.arachne.portal.model.SubmissionStatus) ZipOutputStream(java.util.zip.ZipOutputStream) PENDING(com.odysseusinc.arachne.portal.model.SubmissionStatus.PENDING) FAILED_REJECTED(com.odysseusinc.arachne.portal.model.SubmissionStatus.FAILED_REJECTED) StandardCopyOption(java.nio.file.StandardCopyOption) ArrayList(java.util.ArrayList) Value(org.springframework.beans.factory.annotation.Value) InvitationApprovalSubmissionArachneMailMessage(com.odysseusinc.arachne.portal.service.mail.InvitationApprovalSubmissionArachneMailMessage) ApproveDTO(com.odysseusinc.arachne.portal.api.v1.dto.ApproveDTO) ZipUtil(com.odysseusinc.arachne.portal.util.ZipUtil) UserService(com.odysseusinc.arachne.portal.service.UserService) SubmissionFileRepository(com.odysseusinc.arachne.portal.repository.SubmissionFileRepository) Files(java.nio.file.Files) SubmissionGroupSpecification(com.odysseusinc.arachne.portal.model.search.SubmissionGroupSpecification) IOException(java.io.IOException) EntityManager(javax.persistence.EntityManager) DataNodeUtils(com.odysseusinc.arachne.portal.util.DataNodeUtils) File(java.io.File) ContentStorageHelper(com.odysseusinc.arachne.portal.util.ContentStorageHelper) AnalysisFile(com.odysseusinc.arachne.portal.model.AnalysisFile) QuerySpec(com.odysseusinc.arachne.storage.model.QuerySpec) Paths(java.nio.file.Paths) FAILED(com.odysseusinc.arachne.portal.model.SubmissionStatus.FAILED) PUBLISH(com.odysseusinc.arachne.portal.service.impl.submission.SubmissionActionType.PUBLISH) DataNodeUtils.isDataNodeOwner(com.odysseusinc.arachne.portal.util.DataNodeUtils.isDataNodeOwner) UpdateNotificationDTO(com.odysseusinc.arachne.portal.api.v1.dto.UpdateNotificationDTO) AnalysisHelper(com.odysseusinc.arachne.portal.util.AnalysisHelper) Date(java.util.Date) LoggerFactory(org.slf4j.LoggerFactory) EXECUTED_PUBLISHED(com.odysseusinc.arachne.portal.model.SubmissionStatus.EXECUTED_PUBLISHED) IDataSource(com.odysseusinc.arachne.portal.model.IDataSource) ResultFileSearch(com.odysseusinc.arachne.portal.model.search.ResultFileSearch) SubmissionFile(com.odysseusinc.arachne.portal.model.SubmissionFile) SubmissionStatusHistoryRepository(com.odysseusinc.arachne.portal.repository.SubmissionStatusHistoryRepository) BaseSubmissionService(com.odysseusinc.arachne.portal.service.submission.BaseSubmissionService) ContentStorageService(com.odysseusinc.arachne.storage.service.ContentStorageService) ArachneFileMeta(com.odysseusinc.arachne.storage.model.ArachneFileMeta) PostAuthorize(org.springframework.security.access.prepost.PostAuthorize) UUIDGenerator(com.odysseusinc.arachne.portal.util.UUIDGenerator) UUID(java.util.UUID) Collectors(java.util.stream.Collectors) FileNotFoundException(java.io.FileNotFoundException) Objects(java.util.Objects) SubmissionSpecification(com.odysseusinc.arachne.portal.model.search.SubmissionSpecification) List(java.util.List) Optional(java.util.Optional) SubmissionActionType(com.odysseusinc.arachne.portal.service.impl.submission.SubmissionActionType) NOT_APPROVED(com.odysseusinc.arachne.portal.model.SubmissionStatus.NOT_APPROVED) EntityGraph(com.cosium.spring.data.jpa.entity.graph.domain.EntityGraph) SubmissionStatus.valueOf(com.odysseusinc.arachne.portal.model.SubmissionStatus.valueOf) DigestUtils(org.springframework.util.DigestUtils) EntityGraphUtils(com.cosium.spring.data.jpa.entity.graph.domain.EntityGraphUtils) LegacyAnalysisHelper(com.odysseusinc.arachne.portal.util.LegacyAnalysisHelper) Submission(com.odysseusinc.arachne.portal.model.Submission) SubmissionGroupSearch(com.odysseusinc.arachne.portal.model.search.SubmissionGroupSearch) ResultFileRepository(com.odysseusinc.arachne.portal.repository.ResultFileRepository) ValidationException(com.odysseusinc.arachne.portal.exception.ValidationException) EXECUTED_REJECTED(com.odysseusinc.arachne.portal.model.SubmissionStatus.EXECUTED_REJECTED) NoExecutableFileException(com.odysseusinc.arachne.portal.exception.NoExecutableFileException) ObjectUtils(org.apache.commons.lang3.ObjectUtils) EXECUTED(com.odysseusinc.arachne.portal.model.SubmissionStatus.EXECUTED) UserDetails(org.springframework.security.core.userdetails.UserDetails) LinkedList(java.util.LinkedList) OutputStream(java.io.OutputStream) Logger(org.slf4j.Logger) SubmissionResultFileRepository(com.odysseusinc.arachne.portal.repository.SubmissionResultFileRepository) SequenceInputStream(java.io.SequenceInputStream) SubmissionAction(com.odysseusinc.arachne.portal.service.impl.submission.SubmissionAction) PermissionDeniedException(com.odysseusinc.arachne.portal.exception.PermissionDeniedException) WebSecurityConfig(com.odysseusinc.arachne.portal.config.WebSecurityConfig) NotExistException(com.odysseusinc.arachne.portal.exception.NotExistException) EntityUtils(com.odysseusinc.arachne.portal.util.EntityUtils) MultipartFile(org.springframework.web.multipart.MultipartFile) IN_PROGRESS(com.odysseusinc.arachne.portal.model.SubmissionStatus.IN_PROGRESS) SubmissionGroup(com.odysseusinc.arachne.portal.model.SubmissionGroup) Collections(java.util.Collections) InputStream(java.io.InputStream) SubmissionGroup(com.odysseusinc.arachne.portal.model.SubmissionGroup) ArrayList(java.util.ArrayList) PageRequest(org.springframework.data.domain.PageRequest) SubmissionGroupSpecification(com.odysseusinc.arachne.portal.model.search.SubmissionGroupSpecification) Sort(org.springframework.data.domain.Sort) PostAuthorize(org.springframework.security.access.prepost.PostAuthorize) PreAuthorize(org.springframework.security.access.prepost.PreAuthorize)

Aggregations

Sort (org.springframework.data.domain.Sort)49 PageRequest (org.springframework.data.domain.PageRequest)29 Pageable (org.springframework.data.domain.Pageable)14 ArrayList (java.util.ArrayList)13 RequestMapping (org.springframework.web.bind.annotation.RequestMapping)7 IdmIdentityDto (eu.bcvsolutions.idm.core.api.dto.IdmIdentityDto)5 List (java.util.List)5 Order (org.springframework.data.domain.Sort.Order)5 BooleanBuilder (com.querydsl.core.BooleanBuilder)4 ResultCodeException (eu.bcvsolutions.idm.core.api.exception.ResultCodeException)4 Collectors (java.util.stream.Collectors)4 EntityNotFoundException (javax.persistence.EntityNotFoundException)4 ApiOperation (io.swagger.annotations.ApiOperation)3 Date (java.util.Date)3 PageImpl (org.springframework.data.domain.PageImpl)3 JsonGenerator (com.fasterxml.jackson.core.JsonGenerator)2 Commentable (com.odysseusinc.arachne.portal.api.v1.dto.Commentable)2 SubmissionInsightDTO (com.odysseusinc.arachne.portal.api.v1.dto.SubmissionInsightDTO)2 CommentTopic (com.odysseusinc.arachne.portal.model.CommentTopic)2 SubmissionInsight (com.odysseusinc.arachne.portal.model.SubmissionInsight)2