У меня есть 3 уровня образца сущностей: Год -> Класс -> Студенты, что-то вроде этого
@Entity
public class Year {
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name="year_id")
Set<Class> classes;
}
@Entity
public class Class {
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name="class_id")
Set<Student> students;
}
@Entity
public class Student {
String name;
}
Итак, я создаю в своем классе Year entityGraph
@NamedEntityGraph(name = "Year.classes",
attributeNodes = @NamedAttributeNode("classes"))
Но в некоторых методах в моем сервисе я хочу только вернуть классы, поэтому я помещаю в свой репозиторий
@EntityGraph(value = "Year.classes", type = EntityGraph.EntityGraphType.LOAD)
public List<Year> findOne(){
}
но в некоторых методах моего служения я хочу вернуть 3 уровня
в этом случае мне нужно создать @NameEntityGraph в моем классе (и настроить для возврата учеников)
@NamedEntityGraph(name = "Class.students",
attributeNodes = @NamedAttributeNode("students"))
так как я могу настроить этот метод так, чтобы он тоже возвращал ученикам?
@EntityGraph(value = "Year.classes", type = EntityGraph.EntityGraphType.LOAD)
public List<Year> findTwo(){
}
ТКС