簡體   English   中英

無法使用neo4j spring數據向一個節點添加更多關系

[英]Can't add more relationship to one node using neo4j spring data

我有2個節點類型,N:N關系

例如學生 - >班級

一個班級可以有一個以上的學生,一個學生可以學習一個以上的班級

我從excel文件導入學生到一個班級,我有問題,我不知道為什么?

這是我的代碼:

Student.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工作表中為每行添加一個類? 這將導致添加單個新關系並刪除所有舊關系(這可能是為什么您只保存了最后一個學生關系)。

而是將類添加到User實體上的現有列表listStudentClass ,您將在同一會話中創建或加載該實體。

更新

還要確保將學生添加到SchoolClass以便在保存之前實體一致

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM