服务器端排序,asc / desc

问题描述 投票:0回答:2

我正在完成我的整理工作,而且我在一个障碍面前。我可以按特定字段排序,但方向仍然是硬编码的。

@PreAuthorize("hasAuthority('service_manager')")
    @RequestMapping(path = "/clients", method = RequestMethod.GET)
    public Page<ClientResponse> getClients(
            @RequestParam(defaultValue = "0") Integer page,
            @RequestParam(defaultValue = "10") Integer size,
            @RequestParam(required = false) String companyName,
            @RequestParam(required = false) BigInteger firmRegNo,
            @RequestParam(required = false) String address,
            @RequestParam(required = false) BigInteger contractNo,
            @RequestParam(required = false) BigInteger monthlyPay,
            @RequestParam(required = false) User.UserStatus status,
            @RequestParam(defaultValue = "createTime") String sort,
            @RequestParam(defaultValue = "desc") String sortDir
            ) {

        ClientListRequest request = new ClientListRequest(companyName, firmRegNo, address, contractNo, monthlyPay, status);
        return clientService.getAllClients(request, of(page, size, Sort.Direction.DESC, sort))
                .map(ClientResponse::new);
    }

如何根据Sort.Direction.DESC的参数值替换Sort.Direction.ASCsortDir

我试过这个:

if (sortDir == "asc") {
            return clientService.getAllClients(request, of(page, size, Sort.Direction.ASC, sort))
                    .map(ClientResponse::new);
        } else {
            return clientService.getAllClients(request, of(page, size, Sort.Direction.DESC, sort))
                    .map(ClientResponse::new);
        }

不起作用也看起来不对......

spring-boot
2个回答
0
投票

尝试这样的事情:

    Pageable pageable = new PageRequest(page, size, Sort.Direction.fromString(sortDir), sort);
    return repository.findAll(pageable);

0
投票

我用过这个:

Sort.Direction direction;

        if (sortDir.equals("asc")) {
            direction = Sort.Direction.ASC;
        } else {
            direction = Sort.Direction.DESC;
        }

        return clientService.getAllClients(request, of(page, size, direction, sort))
                    .map(ClientResponse::new);
© www.soinside.com 2019 - 2024. All rights reserved.