2

我在Play!Framework应用程序 中使用带有Spring数据的Neo4j-Spatial 。

我有一个用户类型的@NodeEntity 我想将它存储在数据库中,以及一个用于基于位置的查询的空间索引。

我看到的示例使用 GraphDatabaseService 创建一个节点:

Node stadiumNode = graphDatabaseService.createNode();

然后将此节点添加到空间索引中:

Index<Node> index = graphDatabaseService.index().forNodes(indexLayerName, config)`;
stadiumNode.setProperty("wkt", String.format("POINT(%s %s)", lat, lon)); 
index.add(stadiumNode, "dummyA", "dummyB");

但是,节点没有与之关联的特定类型(例如User )。为此,我必须首先创建interface UserRepository extends GraphRepository<User>

@Autowired
private UserRepository userRepository;

然后将 User nodeEntity 添加到存储库:

User user = new User();
userRepository.save(user);

但是,这会创建3 个节点(空间索引 RTree 中的 1 个,neo4j 图中的 2 个)。这样做的正确方法是什么?我只想要2个节点:

  1. neo4j 图中一个User类型的节点
  2. 一个节点包含与上述节点相关的位置信息。
4

0 回答 0