Как отобразить объект JPA при весенней загрузке - PullRequest
0 голосов
/ 18 февраля 2020

добрый день всем: у меня есть небольшая проблема, которую я хочу, чтобы вы помогли мне решить. Моя проблема заключается в следующем, я должен найти более короткое расстояние магазинов в соответствии с картами Google и в соответствии с широтой и долготой, в любом случае, у меня есть запрос, который делает это, моя проблема, когда я звоню на jparepository, он возвращает массив и мне нужно вернуть меня с указанным c форматом.

Это моя конечная точка, которую я пытаюсь получить из jparepository

@RequestMapping(value = "api/promos/distance/", method = RequestMethod.GET)
public ResponseEntity<?> distance(@RequestParam(required = false) Double latitude, Double longitude, Long radius) {
    try {
        return ResponseEntity.status(HttpStatus.OK)
                .body(locationDAO.findDistance(latitude,longitude,radius));

    } catch (Exception ex){
        return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(ex.toString());
    }
}

это мой репозиторий с параметрами и возвращаем 2 значения

@Query(value = "select sp.id as id, \n" +
            "          ( 6371  * acos( cos( radians(:latitude) ) \n" +
            "      * cos( radians( sp.latitude )) \n" +
            "      * cos( radians( sp.longitude ) - radians(:longitude)) \n" +
            "      + sin( radians(:latitude) ) \n" +
            "      * sin( radians( sp.latitude ) ) ) ) AS distance \n" +
            "        from promo_locations sp \n" +
            "having distance < :radius ORDER BY distance ASC", nativeQuery = true)
    List<Object> findDistance(
            @Param("latitude") Double latitude,
            @Param("longitude") Double longitude,
            @Param("radius") Long radius);

, и это показывает мне это

[
    [
        1,
        137.94383549078196
    ],
    [
        2,
        137.94383549078196
    ]
]

, но мне нужно показать мне в этом формате:

[
    {
        "id" : 1,
        "distance" : 137.94383549078196
    },
    {
        "id" : 2,
        "distance" :137.94383549078196
    }
]

Если кто-то знает, как карту или как конвертировать, я буду вам очень благодарен

1 Ответ

0 голосов
/ 18 февраля 2020

взгляните на это и это
в основном вам нужно определить SqlResultSetMapping для вашего собственного запроса

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...