Java 分页和排序存储库如何排序不区分大小写?

Java 分页和排序存储库如何排序不区分大小写?,java,sorting,spring-boot,repository,thymeleaf,Java,Sorting,Spring Boot,Repository,Thymeleaf,我的问题是我的代码对结果进行区分大小写的排序 下面是我的代码: @GetMapping("/user/api_key_list") public ModelAndView apiKeyList(Model model, @RequestParam("pageSize") Optional<Integer> pageSize, @R

我的问题是我的代码对结果进行区分大小写的排序

下面是我的代码:

    @GetMapping("/user/api_key_list")
    public ModelAndView apiKeyList(Model model,
                                   @RequestParam("pageSize") Optional<Integer> pageSize,
                                   @RequestParam("page") Optional<Integer> page,
                                   @RequestParam("sortBy") Optional<String> sortBy
    ) {
        ModelAndView modelAndView = new ModelAndView("user/apikeylist");
        int evalPageSize = pageSize.orElse(INITIAL_PAGE_SIZE);
        int evalPage = (page.orElse(0) < 1) ? INITIAL_PAGE : page.get() - 1;
        String sortOrder = sortBy.orElse(INITIAL_SORT);
        String[] sort = sortOrder.split(",");
        String evalSort = sort[0];
        String sortDirection = sort[1];
        Sort.Direction evalDirection = replaceOrderStringThroughDirection(sortDirection);
        Page<ApiKey> apiKeyList = apiKeyRepository.findAll(PageRequest.of(evalPage, evalPageSize, evalDirection, evalSort));
        PagerModel pager = new PagerModel(apiKeyList.getTotalPages(), apiKeyList.getNumber(), BUTTONS_TO_SHOW);
        modelAndView.addObject("apiKeyList", apiKeyList);
        modelAndView.addObject("selectedPageSize", evalPageSize);
        modelAndView.addObject("pageSizes", PAGE_SIZES);
        modelAndView.addObject("pager", pager);
        modelAndView.addObject("selectedSort", String.format("%s,%s", evalSort, sortDirection));
        modelAndView.addObject("sorts", SORTS);
        return modelAndView;
    }
@GetMapping(“/user/api\u key\u list”)
公共模型和查看apiKeyList(模型,
@RequestParam(“页面大小”)可选页面大小,
@RequestParam(“页面”)可选页面,
@RequestParam(“sortBy”)可选sortBy
) {
ModelAndView ModelAndView=新的ModelAndView(“用户/apikeylist”);
int evalPageSize=pageSize.orElse(初始页面大小);
int evalPage=(page.orElse(0)<1)?初始页面:page.get()-1;
字符串sortOrder=sortBy.orElse(初始排序);
String[]sort=sortOrder.split(“,”);
字符串evalSort=sort[0];
字符串sortDirection=sort[1];
Sort.Direction evalDirection=replaceOrderStringThroughDirection(sortDirection);
Page apiKeyList=apiKeyRepository.findAll(PageRequest.of(evalPage,evalPageSize,evalDirection,evalSort));
PagerModel pager=新的PagerModel(apiKeyList.GetTotalPage(),apiKeyList.getNumber(),按钮显示);
addObject(“apiKeyList”,apiKeyList);
addObject(“selectedPageSize”,evalPageSize);
添加对象(“页面大小”,页面大小);
添加对象(“寻呼机”,寻呼机);
modelAndView.addObject(“selectedSort”,String.format(“%s,%s”,evalSort,sortDirection));
addObject(“排序”,排序);
返回模型和视图;
}

我的问题是:如何对其进行不区分大小写的排序

使用
排序顺序

Sort.Order order = new Sort.Order(evalDirection , evalSort).ignoreCase();

Page<ApiKey> apiKeyList = apiKeyRepository.findAll(PageRequest.of(evalPage, evalPageSize, new Sort(order)));
Sort.Order Order=new Sort.Order(evalDirection,evalSort.ignoreCase();
PageApikeList=ApikeRepository.findAll(PageRequest.of(evalPage,evalPageSize,new Sort(order));

如果您使用的是spring数据jpa,您可以这样做

Sort.Order order = new Sort.Order(Sort.Direction.ASC, "columnName").ignoreCase();
并在查询中传递此顺序

就你而言

Page<ApiKey> apiKeyList = apiKeyRepository.findAll(PageRequest.of(evalPage, evalPageSize, new Sort(order)));
这应该可以解决它

    //    Query query = new Query();
        Sort.Order order = new Sort.Order(Direction.DESC, "columnName");
   //     query.with( Sort.by(order));

        Page<ApiKey> apiKeyList = apiKeyRepository.findAll(PageRequest.of(evalPage, evalPageSize, new Sort(order)));
//Query Query=new Query();
Sort.Order Order=新的Sort.Order(Direction.DESC,“columnName”);
//query.with(Sort.by(order));
PageApikeList=ApikeRepository.findAll(PageRequest.of(evalPage,evalPageSize,new Sort(order));

添加注释以便也能帮助其他人。

问题是,如果我使用
新排序(顺序)
它已被弃用。您可以查看其他未弃用的排序函数。只需相应地传递参数
    //    Query query = new Query();
        Sort.Order order = new Sort.Order(Direction.DESC, "columnName");
   //     query.with( Sort.by(order));

        Page<ApiKey> apiKeyList = apiKeyRepository.findAll(PageRequest.of(evalPage, evalPageSize, new Sort(order)));