в моем весеннем загрузочном приложении у меня есть пользовательский объект, который связан от многих ко многим с курсами сущностей (один пользователь может записаться на многие курсы, а один курс может иметь несколько пользователей), а курсы сущностей относятся один ко многим с классом сущностей (один курс имеет несколько классов, но один класс имеет только один курс)
Я делаю свое приложение с весенней загрузкой, и чтобы сказать, что пользователь записался на курс, мне просто нужно сделать:
user.setCourse(course)
userRepository.save(user)
при описании курса пользователю могу сказать, что он записался на курс. Но как связать пользователя с классом, чтобы узнать, например, какие классы он закончил? Я могу слишком много использовать эти пользовательские отношения для многих, конечно, один для многих классов, или мне нужно создать много отношений для многих пользователей с классом?
Вот небольшой пример сущностей, чтобы лучше проиллюстрировать отношения:
@Entity
public class User{
private long id;
private String name;
private String password;
@ManyToMany(mappedBy = “enrolledUser”, fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinTable
private List enrolledCourse;
//getters and setters
}
@Entity
public class Course{
private long id;
private String name;
private String description;
@ManyToMany(mappedBy = “enrolledCourse”, fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinTable
private List enrolledUser;
@OnetoMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
private List aulas;
//getters and setters
}
@Entity
public class Class{
private long id;
private String name;
private String content;
@ManyToOne(mappedBy = “class”, fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinTable
private Course course;
//getters and setters
}