У меня есть база данных neo4j, и один из узлов в базе данных имеет следующее:
<id>:91671 coordinates: point({srid:7203, x:-4.327197062, y:52.03857589}) description: "home"
Я пытаюсь создать модель этого в java - Итак:
import org.neo4j.ogm.annotation.GeneratedValue;
import org.neo4j.ogm.annotation.NodeEntity;
import org.neo4j.ogm.annotation.Property;
import org.neo4j.ogm.types.spatial.CartesianPoint2d;
@NodeEntity (label="Location")
public class Location
{
@Id @GeneratedValue
private Long id;
public Long getId()
{
return id;
}
@Property(name="description")
String description;
@Property(name="coordinates")
CartesianPoint2d coordinates; // problem is here
}
Когда я пытаюсь использовать ogm для сопоставления узла с объектом, я получаю следующую ошибку:
org.neo4j.ogm.exception.core. InvalidPropertyFieldException: «Расположение # координаты» не является постоянным как свойство, но не было помечено как переходное.
Я пробовал различные другие типы для coordinates
, а также пытался использовать конвертер (на основе документация ogm - см. 3.10.2 ); но каждый раз я получаю сообщение об ошибке.
Как правильно сделать это сопоставление между точкой neo4j srid 7203 и типом java? Почему он говорит, что он не является постоянным, и каковы мои альтернативы?
примечание: я знаю, что мои очки, вероятно, должны быть 4326, так как я говорю о широтах и долготах - я не конечно, почему это не так - но давайте пока решим проблему как есть