我使用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行的结果:
如您所见,在加载 Association 时,所有集合已被替换。 模块的大小不再是70个项目,而是一个项目。功能集已被替换,但其项目保持不变。
这种行为对我来说是完全无法预测的。任何人都可以帮助并阐明这些问题吗?
非常感谢!