List of usage examples for org.springframework.data.jpa.domain JpaSort JpaSort
private JpaSort(List<Order> orders, @Nullable Direction direction, List<Path<?, ?>> paths)
From source file:org.zlogic.vogon.web.controller.TransactionsController.java
/** * Returns all transactions in a specific range, or all transactions if page * parameter is missing/*from w w w . j a v a 2 s .co m*/ * * @param page the page number * @param sortColumn the column used for sorting * @param sortDirection the sort direction * @param filterDescription * @param filterTags the tags to be filtered * @param filterDate the date to be filtered * @param user the authenticated user * @return the transactions */ @RequestMapping(method = RequestMethod.GET, produces = "application/json") public @ResponseBody Collection<FinanceTransactionJson> getTransactions(@RequestParam("page") Integer page, @RequestParam(value = "sortColumn", required = false) SortColumn sortColumn, @RequestParam(value = "sortDirection", required = false) Sort.Direction sortDirection, @RequestParam(value = "filterDescription", required = false) String filterDescription, @RequestParam(value = "filterDate", required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) Date filterDate, @RequestParam(value = "filterTags", required = false) Collection<String> filterTags, @AuthenticationPrincipal VogonSecurityUser user) { Attribute sortAttribute = FinanceTransaction_.transactionDate; if (sortColumn != null) switch (sortColumn) { case AMOUNT: sortAttribute = FinanceTransaction_.amount; break; case DATE: sortAttribute = FinanceTransaction_.transactionDate; break; case DESCRIPTION: sortAttribute = FinanceTransaction_.description; break; } if (sortDirection == null) sortDirection = Sort.Direction.fromStringOrNull(null); Sort sort = new JpaSort(sortDirection, sortAttribute, FinanceTransaction_.id); //TODO: Optimize if https://jira.spring.io/browse/DATAJPA-209 gets implemented? TransactionFilterSpecification filter = new TransactionFilterSpecification(user.getUser()); filter.setFilterDescription(filterDescription); filter.setFilterDate(filterDate); if (filterTags != null) filter.setFilterTags(new HashSet<>(filterTags)); if (page == null) return initializationHelper.initializeTransactions(transactionRepository.findAll(filter, sort)); PageRequest pageRequest = new PageRequest(page, PAGE_SIZE, sort); return initializationHelper .initializeTransactions(transactionRepository.findAll(filter, pageRequest).getContent()); }