Весенний заказ данных по функции Java

У меня есть сущность:

+--------+----------+-----------+ | Name | Latitude | Longitude | +--------+----------+-----------+ | A | x1 | y1 | | B | x2 | y2 | | C | x3 | y3 | +--------+----------+-----------+ 

И я хотел бы получить результат, упорядоченный по расстоянию до заданной точки. Конечно, я могу сделать это вот так:

 ... " ORDER BY (acos(sin(latitude * $RADIAN) * sin(:latitude * $RADIAN)" + " + cos(latitude * $RADIAN) * cos(:latitude * $RADIAN)" + " * cos((:longitude * $RADIAN) - (longitude * $RADIAN))" + " ) * $EARTH_RADIUS)") fun findDoctorDepartmentsInRange(@Param("latitude") latitude: Double, @Param("longitude") longitude: Double) 

Но это выглядит грязно, особенно есть объединения и т. Д.

Как написать custom orderBy использовать мою пользовательскую функцию вместо того, чтобы писать ее как SQL-запрос?