0

有没有办法从 spring-data-neo4j [SDN] 数据库中简单地检索某种类型的所有关系 - 其中类型是带@RelationshipEntity注释的类?(使用 2.0.0.RC1 和嵌入式数据库)

当我尝试 SDN 提供的方法时:

relationShipRepository.findAll()

它给了我以下错误:

org.neo4j.graphdb.NotFoundException: __type__ property not found for RelationshipImpl #9672 of type 7 between Node[4844] and Node[4875].

完整的堆栈跟踪:http: //pastebin.com/j2gqcjxh(虽然看起来

一种解决方案是使用低级(neo4j)API(即GraphDatabaseService)检索所有节点,然后为每个节点检索它们的所有关系并验证它们的__type__字段是否与我感兴趣的关系类型匹配。但是为什么要提供findAll关系的方法?

简单的解释是建议的接口对于节点和关系是相同的 - 但是是否有任何文档说我们不允许使用findAll关系?

或者:检查数据库中的关系实体,它与异常相矛盾,因为类型已按预期正确定义,并且一旦检索到节点并调用,就可以通过高级(SDN)API 检索关系getRelationship*(..)

另一方面:有人知道ImpermanentDataGraph服务是否会包含在 v 2+ 中吗?

4

1 回答 1

2

您是在寻找在 SDN 中创建为关系实体的关系还是所有关系?

你的用例是什么?

关系实体也被添加到索引中。关系 9672 是关系实体吗?

对于依赖于 TypeRepresentationStrategy 的关系存储库,如果使用“索引策略”,关系实体也可以在它们各自的存储库中使用(但不是全局的)。

在 Neo4j 1.6.M01 中有一个新的[GlobalGraphOperations][1]类也有getAllRelationships().

ImpermanentGraphDatabase不在 Neo4j 测试工具链中。并且它将在 v2+ 中保持不变(并提高性能)。

于 2011-12-02T09:57:56.707 回答