有没有办法简单地从spring-data-neo4j [SDN]数据库中检索某种类型的所有关系 - 其中type是@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*(..)
另一方面说明:有人知道{2}服务是否会包含在{2}中吗?
答案 0 :(得分:2)
您是否正在寻找在SDN或所有关系中创建为关系实体的关系?
你的用例是什么?
Relationship-Entites也会添加到索引中。 关系9672是关系实体吗?
对于Relationship-Repository - 依赖于TypeRepresentationStrategy,如果使用“indexed-strategy”,Relationship-Enties也可以在各自的存储库中使用(但不是全局)。
在Neo4j 1.6.M01中,有一个新的[GlobalGraphOperations][1]
类也有getAllRelationships()
。
ImpermanentGraphDatabase
超出了Neo4j测试工具链。它将在v2 +中保留(并提高性能)。