Neo4J OGM替换有负载的集合,丢失已经水化的数据

时间:2019-05-21 07:21:18

标签: java neo4j cypher neo4j-ogm neo4j-embedded

我使用Neo4J OGM嵌入式数据库从文件系统存储和加载存储库。

将数据持久保存到数据库中已经可以很好地工作了,但是将数据重新加载到对象模型中却很困难。

我遇到以下行为:

NeoRepository repo = neoSession.load(NeoRepository.class, 0L); <-- STEP 1

/** load associations */
neoSession.loadAll(NeoAssociation.class, 4); <-- STEP 2

代码使用默认深度加载整个存储库,该深度仅加载几个子实体,但有趣的是并非全部。一些关系仍然是空的。 因此,我必须手动加载其他子实体。

在下面的图片中,可以看到 STEP1 之后的状态。该存储库已基本加载,包括功能部件和模块(共70个项目),但尚未加载 Associations 子实体。

要加载关联 STEP2 尝试使用 loadAll 手动加载所有它们。下图显示了STEP2行的结果:

enter image description here

如您所见,在加载 Association 时,所有集合已被替换。 模块的大小不再是70个项目,而是一个项目。功能集已被替换,但其项目保持不变。

这种行为对我来说是完全无法预测的。任何人都可以帮助并阐明这些问题吗?

非常感谢!

0 个答案:

没有答案