Добрый день!
Пытаюсь работать через 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);
Заранее спасибо.