首页 > 解决方案 > 如何在 Spring Boot 中从 MySql 数据库中获取前 10 条和不同的记录

问题描述

我想获取前 10 名和不同的记录 MySql 数据库。我没有使用任何自定义查询或 JPQL 来获取此类记录。我试过了:

    List<Pincode> findTop10DistinctByStatusOrderByCreateddatetimeDesc(int status);

下面是我的 REST Api 控制器,用于获取前 10 名和不同的热门城市:

@RequestMapping(value = AkApiUrl.getpopularcities, method = { RequestMethod.POST, RequestMethod.GET }, produces = {MediaType.APPLICATION_JSON_VALUE })
    public ResponseEntity<?> getpopularcities(HttpServletRequest request) {
        CustomResponse = ResponseFactory.getResponse(request);
        try {
            List<Pincode> topcities = pincodedao.findTop10DistinctByStatusOrderByCreateddatetimeDesc(1);
            for(int i = 0; i < topcities.size(); i++) {
                System.out.println("City name: || "+topcities.get(i).getDelivercityid().getCity());
            }
            if (topcities != null) {
                CustomResponse.setResponse(topcities);
                CustomResponse.setStatus(CustomStatus.OK);
                CustomResponse.setStatusCode(CustomStatus.OK_CODE);
                CustomResponse.setResponseMessage(CustomStatus.SuccessMsg);
            }
        } catch (Exception e) {
            e.printStackTrace();
            CustomResponse.setResponse(null);
            CustomResponse.setStatus(CustomStatus.Error);
            CustomResponse.setStatusCode(CustomStatus.Error_CODE);
            CustomResponse.setResponseMessage(CustomStatus.ErrorMsg);
        }
        return new ResponseEntity<ResponseDao>(CustomResponse, HttpStatus.OK);
    }

这是已在控制台上打印的输出:

Top cities list: ||10
City name: || Ludhiana
City name: || Ludhiana
City name: || Ludhiana
City name: || Ludhiana
City name: || Surat
City name: || Ajmer
City name: || Ajmer
City name: || Mohali
City name: || Mohali
City name: || Zirakpur

当我在邮递员中点击上述 API 时,我得到了结果,但在控制台中我得到了重复的城市。所以我想获得不同的以及前 10 名的记录。请提供任何建议是否使用自定义查询以获得所需的输出。

标签: spring-boothibernatejpaspring-data-jpaspring-data

解决方案


推荐阅读