Я новичок в спящем режиме и пытаюсь изучить основы. Я пытаюсь реализовать отображение oneToMany, но у меня возникла проблема при выполнении запроса get. В основном ответ не показывает дочернюю сущность.
public class Student implements Serializable {
@Id
@GeneratedValue
private int id;
private String name;
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
Set<Course> courseList;
}
public class Course {
@Id
@GeneratedValue
private int id;
private String name;
}
Я знаю, что это не оптимальный способ, но я просто пытаюсь увидеть, как гибернат создает sql. Я использую репозитории Spring jpa, чтобы получить все уроки для студентов. Как я проверяю базу данных курса и отношения со студентами верны. Но CourseList пуст в GET запросе студента. Я не понимаю, почему.
Вот вывод hibernate:
select
student0_.id as id1_1_,
student0_.name as name2_1_
from
students student0_
select
courselist0_.student_id as student_1_2_0_,
courselist0_.course_list_id as course_l2_2_0_,
course1_.id as id1_0_1_,
course1_.name as name2_0_1_,
course1_.student_id as student_3_0_1_,
student2_.id as id1_1_2_,
student2_.name as name2_1_2_
from
students_course_list courselist0_
inner join
courses course1_
on courselist0_.course_list_id=course1_.id
left outer join
students student2_
on course1_.student_id=student2_.id
where
courselist0_.student_id=?
Примечание: В отладке я вижу, что дочерняя сущность была заполнена. Но ответ не включает его.
Примечание 2. Кроме того, мне интересно, почему hibernate создает тот же sql (второй, который выбирает дочернюю сущность), когда я использую fetchType.LAZY