我正在完成我的整理工作,而且我在一个障碍面前。我可以按特定字段排序,但方向仍然是硬编码的。
@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.ASC
和sortDir
?
我试过这个:
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);
}
不起作用也看起来不对......
尝试这样的事情:
Pageable pageable = new PageRequest(page, size, Sort.Direction.fromString(sortDir), sort);
return repository.findAll(pageable);
我用过这个:
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);