[英]Convert List<Map<String, String>> to Object in Java Spring boot jpa
[英]How to map from JPA Object in spring boot
大家好:我有一个小问题希望你帮我解决。 我的问题是下一个,我必须根据谷歌地图和经纬度找到更短的商店距离,无论如何,我有做这些的查询,我的问题是当我调用jparepository
它返回一个数组和我需要以特定格式返回给我。
这是我试图从jparepository
获得的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
}
]
如果有人知道如何映射或如何转换,我将非常感谢
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.