猿问

如何从 SDN 5 中的 findAll 获取关系实体?

当然,一个简单的问题,但我找不到我的答案。如何使用Neo4JRepository从关系中获取实体?


Java 8 // Spring Boot 2 // SDN 5.0.9 // OGM 3


有我的代码:


@NodeEntity(label = "category")

public class Category {


    private @Id @GeneratedValue(strategy = InternalIdStrategy.class) Long id;

    private String name;

    @Relationship(type = "MEMBER_OF", direction = Relationship.INCOMING)

    private Set<Sport> sports;

}


@NodeEntity(label = "sport")

public class Sport {


    private @Id @GeneratedValue(strategy = InternalIdStrategy.class) Long id;

    private String name;

    private String descrition;

    @Relationship(type = "MEMBER_OF")

    private Set<Category> categories;

}

@RelationshipEntity(type = "MEMBER_OF")

public class Membership {

    @Id

    @GeneratedValue

    private Long id;

    @StartNode

    Sport sport;

    @EndNode

    Category category;

}

我的 Neo4jRepository 中的一个简单 findAll 返回所有节点 Sport,但设置的类别为空


那么,你能告诉我我做错了什么吗?


尚方宝剑之说
浏览 135回答 1
1回答

慕哥9229398

您声明有直接的关系Category,并Sport呼吁MEMBER_OF也定义了丰富的关系(@RelationshipEntity)具有相同的名称。Neo4j-OGM 在这种情况下不知道要映射什么。从我在示例代码中看到的,根本没有必要添加丰富的关系类,因为没有定义其他属性,这将是创建这样一个类的唯一原因。如果您定义了属性但未在示例中列出,您应该更改集合的类型并将其设置为Membership在两个类中。
随时随地看视频慕课网APP

相关分类

Java
我要回答