【发布时间】:2019-12-24 17:47:06
【问题描述】:
- 我是一名拥有 7 年经验的 Java 开发人员。
Neo4j 新手(与 Spring Data 一起使用)
我正在构建一个教育领域的项目。
- 我有一个名为 Question.java 的模型 (POJO),它由一个嵌套属性(一个列表)Answer 组成。
- Answer.java 有自己的属性,如 id、ver 等。
现在,当我通过repository.save(questionEntity); 保存问题实体时,它会保存两个节点,
1 是Question,另一个是Answer。
我想避免Answer 成为节点。并且,它的数据应该存储在 Question 节点中。
原因 - 假设我有一个问题实体,它有 100 个答案,并尝试通过以下方式获取问题数据 repository.findById(questionEntity.getId());,会遍历 问题 + 答案节点 (1 + 100 = 101)。效率不高。
请在下面查看我的 POJO。提前致谢。
附加问题 - 什么更好? Spring 数据存储库功能,如 findById、save 等或 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