springdataneo4j中的java数据建模
我的图形包含称为点和线的节点
有一种称为“NEXT”的关系类型,它连接两个点,并有一个名为lineID
(long)的属性。线节点仅由ID和对“根”点的引用组成。要遍历一条线,就要从它的根节点开始,并遵循其lineID
与被遍历线的id匹配的下一个关系。为了澄清,如果我们正在遍历ID为123的行,其根点的ID为321,那么密码遍历将是:
START n = node(321)
MATCH (n)-[rel:NEXT*{lineID:123}]->(x)
RETURN collect(rel)
因此,一行本质上是具有匹配lineID
属性的下一个关系的链接列表。也就是说,我不想将这个列表作为行的属性来持久化——我希望在加载行时通过遍历来构造列表
我在spring-data-neo4j中实现这一点的选项是什么?具体来说,“行”应该以NodeEntity
的形式存在吗?如果是,它们应该包含什么
@NodeEntity
class Line {
@RelatedTo(type="ROOT")
Point root;
@RelatedToVia(type="NEXT")
Iterable<Item> list;
不太合适,因为行与项的下一个关系不相关,根点是。它还无法解决以下事实:这些下一个关系需要具有与线的ID匹配的lineID属性(这一点很重要,因为某些点存在于多条线上,即它们具有多个具有不同lineID的下一个关系)。我有一种预感,解决方案将涉及将列表注释为@GraphTraversal,但我不明白这将如何工作
我这样做主要是为了练习如何在SDN中进行数据建模,在一般情况下,我将学习Neo4j和图形数据库。如果我问的问题显示出我对这些事情的理解有缺陷,如果有人能指出,我将不胜感激
# 1 楼答案
这应该是适合您的实体的模型:
它可以轻松地在Java中进行编程导航,如:
}
或者像您列出的那样的密码查询