Геопространственная поддержка в JPA

Как бы я сопоставил точку и многоугольник с типами java. Если это невозможно, каков обходной путь?

Я хотел бы использовать геопространственную поддержку в mysql или postgres через JPA.


person Community    schedule 30.01.2011    source источник
comment
Я рассматриваю возможность создания пространственного спящего режима и создания некоторой базовой универсальной библиотеки геопространственной поддержки JPA 2.1. Что-то вроде JPA spatial.   -  person Ondrej Bozek    schedule 28.05.2015


Ответы (1)


Я тоже пробовал это - вы можете получить данные, если вы объявите свое поле в JPA как Byte[], и оно будет отображаться как большой двоичный объект, но в пространственном внутреннем формате MySQL - поэтому, несмотря ни на что, вы всегда будете получать нечитаемый внутренний формат - лучше всего в JPA использовать собственный SQL-запрос для получения данных в виде текста.

SELECT AsText(columnName) FROM tableName;

Например:

String sql = "SELECT AsText(LOCATION) FROM ENTITY where id=?1";
return (String) em.createNativeQuery(sql)
                  .setParameter(1, id)
                  .getSingleResult();

возвращает в моем случае: POINT(40.01999 -75.147171).

person bsautner    schedule 19.06.2012