Я новичок в Spring Boot и мне нужна помощь в решении проблемы.
В репозитории Spring Boot я получаю данные из базы данных mysql.
У меня есть два типа возвращаемых значений из хранилища.
a) Возвращаемое значение - это Список моделей, который я определил с помощью тега @Entity, и эта модель соответствует таблице в MySQL. Пример: ZoneModel в приведенном ниже коде.
@Query(value = "select c from ZoneModel c where c.cityId = ?1")
public List<ZoneModel> getZonesInCity(String cityId);
В этом случае мой ответ:
[
{
"id": "1",
"cityId": "1",
"name": "Phoenix Marketcity",
"type": "Mall",
"locationLat": "12.9970372",
"locationLong": "77.6944303"
}
]
Ответом является пара ключ-значение json.
b) Возвращаемое значение не соответствует напрямую какой-либо модели или списку любой модели. Имеются дополнительные столбцы.
@Query(value = "select id, cityId, name, type, locationLat, locationLong," +
" (6371 * acos (\n" +
"cos ( radians(?2) )\n" +
"* cos( radians( locationLat ) )\n" +
"* cos( radians( locationLong ) - radians(?3) )\n" +
"+ sin ( radians(?2) )\n" +
"* sin( radians( locationLat ) )\n" +
")) as distanceInKms\n" +
"from zone where cityId = ?1\n" +
"group by id\n" +
"having distanceInKms < 150\n" +
"order by distanceInKms\n", nativeQuery = true)
public List<Object[]> getZoneSuggestions(String cityId, String latitude, String longitude, Pageable pageable);
В этом случае ответом будет:
[
[
"1",
"1",
"Phoenix Marketcity",
"Mall",
"12.9970372",
"77.6944303",
0.19478083559705964
]
]
В ответе нет ключей, соответствующих именам столбцов.
Как я могу вернуть ответы пары ключ-значение с ключами в качестве имен столбцов даже в тех случаях, когда возвращаемое значение из репозитория не точно совпадает ни с одной моделью?