Ich habe die folgenden (Projekt, Benutzer, Aufgabe) Domain-Objekte. Wie kann ich Entity mit bestimmten verwandten Objekten über Spring Data Neo4j 4 (SDN4) holen? Zum Beispiel möchte ich ein Projekt mit verwandten Aufgaben holen, aber ohne Benutzer. Dieses Beispiel funktioniert nicht. Das Definieren von depth
in neo4jTemplate.load
Methode ist nicht für mich geeignet, da es Benutzerobjekte erhält.Wie kann ich Entity mit bestimmten verwandten Objekten über Spring Data holen Neo4j 4
public Project findProjectWithTasks(Long projectId){
Project project = neo4jTemplate.load(Project.class, projectId, 0);
/*
project.id <- correct
project.name <- correct
project.tasks <- null, but in previous versions of Spring Data Neo4j I had empty entities with id
*/
Collection<Task> tasks = neo4jTemplate.loadAll(project.getTasks()); // <- returns null, because project.getTasks() is null
return project;
}
// ----------
@NodeEntity
class Project {
@GraphId
private Long id;
private String name;
@Relationship(direction = Relationship.OUTGOING, type = "PROJECT_TASK")
private Set<Task> tasks;
@Relationship(direction = Relationship.OUTGOING, type = "PROJECT_USER")
private Set<User> users;
}
@NodeEntity
class Task {
@GraphId
private Long id;
private String name;
@Relationship(direction = Relationship.INCOMING, type = "PROJECT_TASK")
private Project project;
@Relationship(direction = Relationship.OUTGOING, type = "TASK_USER_ASSIGNED")
private User assignedTo;
}
@NodeEntity
class User {
@GraphId
private Long id;
private String email;
@Relationship(direction = Relationship.INCOMING, type = "TASK_USER_ASSIGNED")
private Set<Task> tasks;
@Relationship(direction = Relationship.INCOMING, type = "PROJECT_USER")
private Set<Project> projects;
}