spring.io accessing-data-neo4j指南运行结果与文档不符问题咨询
运行结果确认&问题排查
我跑过这份Spring接入Neo4j的入门示例,之前碰到过和你完全一致的输出偏差,和设备、操作系统没关系,是官方配套示例代码和文档描述不同步导致的。
差异原因
示例里Person实体的teammates字段映射的是队友关系,Spring Data Neo4j默认不会自动补全双向关系的反向引用——代码里给某个实体的队友列表塞了哪些对象,持久化后查出来的关联关系就只有哪些,不会自动帮你把反向的关联也加上。
官方文档写的预期输出,是三个人互相配置了双向队友关系的结果,但随指南提供的初始示例代码只做了单向赋值:
- 只给Greg的队友列表加了Roy、Craig
- 只给Roy的队友列表加了Craig,没加Greg
- 完全没给Craig的队友列表加任何关联对象
所以跑出来就是你拿到的结果:Greg能查到两个队友,Roy只能查到Craig,Craig查不到任何队友。
修复方法
找到代码里构建人物关系、给teammates属性赋值的片段,补全所有反向关联的赋值,保证三个人的队友列表都互相加上了对应的对象,再重新运行就能得到文档里写的预期输出。
补全后的赋值逻辑参考:
greg.setTeammates(List.of(roy, craig)); roy.setTeammates(List.of(greg, craig)); craig.setTeammates(List.of(greg, roy));
内容的提问来源于stack exchange,提问作者chocalaca
相关产品推荐
相关产品推荐

