Spring 数据 Neo4j - RelationshipEntity 的(所有)属性

Spring Data Neo4j - (all) properties of RelationsshipEntity

@NodeEntity
class A {
    @Relationship(type = "INCLUDES", direction = Relationship.UNDIRECTED)
    List<B> bs;
}

@NodeEntity
class B {}

class C {
    int something;
}

@RelationshipEntity(type = "INCLUDES")
class R {
    String property1;
    int property2;
    C c;

    @StartNode
    A a;

    @EndNode
    B b;
}

目标是检索两个特定节点(AB的某些实例)之间的关系实体及其属性ALL

我尝试了以下密码查询:

MATCH (a:A)-[i:INCLUDES]-(b:B) RETURN i;

然而,这只会给我一个空的结果。如果我使用默认 Neo4jRepository.findAll() 实现检索所有 INCLUDE 关系实体,我可以看到所有属性都已设置。

感谢您的帮助!

自定义查询还必须 return AB。 Spring Data Neo4j 需要它们来区分关系 INCLUDES 是否可以映射。可能 returned INCLUDE 确实连接了数据库中的 CD。这会导致错误(和不完整)的映射关系。

另请记住,您的 A class 中的映射应引用 R 而不是 B 以在所有情况下获得正确的行为。

试试这个

MATCH (a:A)-[i:INCLUDES]-(b:B) RETURN i, a, b;