Проблема, с которой вы столкнулись, заключается в том, что вы пытаетесь извлечь данные из вашего запроса в список Long
, тогда как на самом деле вам нужен список Object
.Это связано с тем, что вы выбираете более одного значения в строке (идентификатор и расстояние).Измените свой код на следующий, и он должен работать.
@Query("SELECT id, (6371 * acos (cos(radians(:latitude)) * cos(radians(latitude)) * cos(radians(longitude) - radians(:longitude)) + sin(radians(:latitude)) * sin(radians(latitude)))) AS distance FROM gang HAVING distance < :distance ORDER BY distance)")
List<Object> findNearbyGangs(@Param("latitude") double lat, @Param("longitude") double lng, @Param("distance") double distance);