gpt4 book ai didi

java - 无法使用 neo4j spring 数据向一个节点添加更多关系

转载 作者:太空宇宙 更新时间:2023-11-04 12:33:10 24 4
gpt4 key购买 nike

我有 2 个具有 N:N 关系的节点类型

例如学生 -> 类(class)

一个类(class)可以有多个学生,一个学生可以在多个类(class)学习

当我从 Excel 文件将学生导入一个类(class)时,我遇到了问题,我不知道为什么?

这是我的代码:

学生.java

@NodeEntity
public class User implements Serializable {
@GraphId
Long id;

String userCode;

String email;

String password;

String realName;

Date birthday;

String phone;

Integer gender;

Integer status;

Integer roleType;

@Relationship(type=RelationshipType.CLASS_OF_STUDENT, direction=Relationship.OUTGOING)
List<SchoolClass> listStudentClass;
}

SchoolClass.java

@NodeEntity
public class SchoolClass implements Serializable {
@GraphId
Long id;

String className;

String classCode;

String createUser;

Date createDate;

String updateUser;

Date updateDate;

@Relationship(type=RelationshipType.CLASS_OF_STUDENT, direction=Relationship.INCOMING)
List<User> students;
}

我循环从 Excel 导入学生的位置如下

for(...) {

...

List<SchoolClass> listStudentClass = new ArrayList<SchoolClass>();

listStudentClass.add(schoolClass);

student.setListStudentClass(listStudentClass);

...

userRepository.save(student);

}

但完成循环时只有最后一名学生与 schoolClass 有关系

这是 neo4j spring 数据问题吗?我使用 neo4j 3.0.1 和 spring-data-neo4j 4.1.1.RELEASE 版本。

最佳答案

您似乎总是创建一个新的类列表,并从 Excel 工作表中的每行向其中添加一个类?这将导致添加单个新关系并删除所有旧关系(这可能就是您只保存最后一个学生关系的原因)。

相反,将该类添加到您在同一 session 中创建或加载的用户实体上的现有列表 listStudentClass 中。

更新:

还要确保将学生添加到 SchoolClass 中,以便在保存之前您的实体保持一致

关于java - 无法使用 neo4j spring 数据向一个节点添加更多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37611472/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com