Neo4j-Spring Data-如何避免嵌套属性成为neo4j中的节点

问题描述 投票:0回答:1
  • 我是具有7年经验的Java开发人员。
  • Neo4j的新功能(与Spring数据一起使用)

  • 我正在教育领域建立一个项目。

  • 我有一个名为Question.java的模型(POJO),它由一个嵌套的属性(答案的列表)组成。
  • Answer.java具有其自己的属性,例如id,ver等。

现在,当我通过repository.save(questionEntity);保存一个Question实体时,它将保存两个节点,1是Question,另一个是Answer

我想避免Answer成为节点。并且,其数据应存储在Question节点中。

原因-假设我有一个Question实体,该实体具有100个答案,并尝试通过以下方式获取Question数据repository.findById(questionEntity.getId());,它将遍历问题+答案节点(1 + 100 = 101)。效率不高。

请在下面查看我的POJO。预先感谢。

附加问题-哪个更好? Spring数据存储库功能,例如findByIdsave等或CYPHER查询?

@NodeEntity
public class Question {
    @Id
    private String cmsQId;
    private String type;
    private String difficultyLevel;
    private String questionId;

    @JsonInclude(JsonInclude.Include.NON_NULL)
    private List<Answer> answers;
}


public class Answer {
    private List<String> correctAnswer;
    private Feedback feedback;
}
java neo4j spring-data-neo4j
1个回答
0
投票

嗨,Mayank,欢迎您来。您可以像在CompositeAttributeConverter中那样实现example的实现,但是您必须自己进行迭代以创建集合(例如,将数字附加到字段等)。通常,我看不出为什么要在Answer节点中存储Question。这不是真正的“图形”和映射,例如对于SDN而言,101个对象不是什么大问题,而对于图数据库提供数据来说,甚至更少。

© www.soinside.com 2019 - 2024. All rights reserved.