Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用neo4j ogm加载参照对象的下一个深度级别_Neo4j_Neo4j Ogm - Fatal编程技术网

如何使用neo4j ogm加载参照对象的下一个深度级别

如何使用neo4j ogm加载参照对象的下一个深度级别,neo4j,neo4j-ogm,Neo4j,Neo4j Ogm,为了熟悉neo4j ogm,我创建了一个有3个人的非常简单的示例, 其中,人员A认识人员B,人员B认识人员C,可以在数据库浏览器中对此进行验证 现在我想加载深度级别为1的Person A(因此knows字段中已经填充了Person B),当访问更深的嵌套字段(例如,通过在GUI中遍历数据)时,应该加载引用的对象。在这种情况下,当检查人员B的“知道”字段时,应加载人员C 我正在用下面的代码加载一个人。但是personb根本没有被引用,我也没有找到任何关于如何加载下一级数据的信息。至少它不能通过访问

为了熟悉neo4j ogm,我创建了一个有3个人的非常简单的示例, 其中,人员A认识人员B,人员B认识人员C,可以在数据库浏览器中对此进行验证

现在我想加载深度级别为1的Person A(因此knows字段中已经填充了Person B),当访问更深的嵌套字段(例如,通过在GUI中遍历数据)时,应该加载引用的对象。在这种情况下,当检查人员B的“知道”字段时,应加载人员C

我正在用下面的代码加载一个人。但是personb根本没有被引用,我也没有找到任何关于如何加载下一级数据的信息。至少它不能通过访问它们来工作(比如在hibernate中)

您的查询
Match(p:Person{name:\“Person A\”})返回p
只返回有问题的人,而不是任何相关的人。 您甚至没有对类型
KNOWS
的关系进行建模(这里仅参考您问题中的措辞)

此人应具有一个附加字段:

@Relationship("KNOWS")
private List<Person> knownPeople;
@关系(“知道”)
私人名单;
您的查询应该类似于
Match(p:Person{name:\'persona\'})-[r:KNOWS]-(op:Person)返回p,collect(r),collect(op)
,以获取第一级关系。 当然,您可以添加更多的模式,并将部分返回到您的查询中,以获得下一个级别等。
但最终,使用
session.loadAll(Person.class)
和会话API的同级方法为您生成密码查询可能会更容易。

感谢您纠正@Relationship,但如何加载层次结构中的下一级(延迟加载)?这就是我提到
会话
的API方法的原因。Neo4j OGM/Spring数据Neo4j中没有延迟加载。您必须在第一次运行或(手动)后续调用中获取所需的所有数据。Meistermeier,谢谢!这帮了大忙。
@Relationship("KNOWS")
private List<Person> knownPeople;