Я использую Spring Data JPA для отображения сущностей и таблиц.
В моей PostgreSQL БД у меня есть таблица Decla_Location, в которой хранятся местоположения с long и lat. Я написал sql собственный запрос с синтаксисом postgre конкретный c, чтобы получить список объявляемых объектов, упорядоченный по относительному расстоянию до заданной точки:
@Query(value="select *, 1.60934 * (point (:longRef, :latRef) <@> point (longitude, latitude)) as distance from declared_location order by distance", nativeQuery = true)
List<DeclaredLocation> findAllSortedByDistance(@Param("longRef") double longRef, @Param("latRef") double latRef);
Я бы хотел сопоставить расстояние, вычисленное как Postgre (столбец «расстояние»), с полем моей сущности. Вот где я застрял. Вот моя сущность:
@Entity
public class DeclaredLocation {
@Id
@Type(type = "uuid-char")
@GeneratedValue(strategy = GenerationType.AUTO)
private UUID id;
private double latitude;
private double longitude;
private String address;
@Column
private Double relativeDistanceKm;
(...)
}
Как мне сказать Spring Data JPA сопоставить столбец distance
, созданный postgre в результате собственного запроса, с полем relativeDistanceKm
сущности? Какой правильный подход для этого?