piatachki
@piatachki

Возможна ли работа с пространственными данными в MySQL/MariaDB через JPA-репозитории?

Добрый день!

Пытаюсь работать через CrudRepository с сущностями, у которых в полях указан тип Point из spring.data.geo. В документации (приложение Д) допускаются гео-типы возвращаемых данных, однако есть сноска, что только для тех хранилищ, которые поддерживают. Но нет никаких примеров HQL-запросов для геоданных. Русская википедия утверждает, что MySQL поддерживает соответствующие операции в 5 версии.

С другой стороны все примеры, которые мне удалось обнаружить, работают с MongoDB-репозиториями, у них есть специальные ключевые слова типа near, isNear, Within и т.д. При попытке использовать их с MySQL-источником выбрасывается IllegalArgumentException: Unsupported keyword. Появляются подозрения, что пакет spring.data.geo вообще не предназначен для работы с SQL-хранилищами.

Конкретизируя вопрос, как мне выбрать из БД все точки (тип spring.data.geo.Point) в радиусе 10 км, например, от указанной. Как должен выглядеть HQL-запрос. Пожалуйста, кто сталкивался, дайте ссылку на пример для MySQL или приведите свой.

@Query("select p from POI p where ??? ")
GeoResults<> getPOI(Point, Distance);


Заранее спасибо.
  • Вопрос задан
  • 281 просмотр
Решения вопроса 1
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы